Methods and devices for customizing knowledge representation systems

ABSTRACT

Techniques for customizing knowledge representation systems including identifying, based on a plurality of concepts in a knowledge representation (KR), a group of one or more concepts relevant to user context information, and providing the identified group of one more concepts to a user. The KR may include a combination of modules. The modules may include a kernel and a customized module customized for the user. The kernel may accessible via a second KR.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 15/403,761, titled “Methods and Devices for CustomizingKnowledge Representation Systems”, filed Jan. 11, 2017. U.S. patentapplication Ser. No. 15/403,761 is a continuation of U.S. patentapplication Ser. No. 14/961,819, titled “Methods and Devices forCustomizing Knowledge Representation Systems”, filed Dec. 7, 2015, whichis incorporated herein by reference in its entirety. U.S. patentapplication Ser. No. 14/961,819 is a continuation of U.S. patentapplication Ser. No. 13/844,009, titled “Methods and Devices forCustomizing Knowledge Representation Systems,” filed Mar. 15, 2013,bearing attorney docket number P0913.70043US00, now issued as U.S. Pat.No. 9,235,806, which is incorporated herein by reference in itsentirety. U.S. patent application Ser. No. 13/844,009 is acontinuation-in-part of U.S. patent application Ser. No. 13/609,218,titled “Knowledge Representation Systems and Methods IncorporatingCustomization,” filed Sep. 10, 2012, bearing attorney docket numberP0913.70039US00, and a continuation-in-part of U.S. patent applicationSer. No. 13/609,223, titled “Knowledge Representation Systems andMethods Incorporating Customization,” filed Sep. 10, 2012, bearingattorney docket number P0913.70040US00, and a continuation-in-part ofU.S. patent application Ser. No. 13/609,225, titled “KnowledgeRepresentation Systems and Methods Incorporating Customization,” filedSep. 10, 2012, bearing attorney docket number P0913.70041US00. U.S.patent application Ser. No. 13/844,009 also claims a priority benefitunder 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No.61/751,571, titled “Methods and Apparatus for Semantic DisambiguationUsing a Graph of a Knowledge Representation, filed Jan. 11, 2013, U.S.Provisional Patent Application No. 61/751,594, titled “Methods andApparatus for Semantic Disambiguation Using Dominance and SemanticCoherence,” filed Jan. 11, 2013, U.S. Provisional Patent Application No.61/751,623, titled “Methods and Apparatus for Calculating a Measure ofSemantic Coherence,” filed Jan. 11, 2013, and U.S. Provisional PatentApplication No. 61/751,659, titled “Methods and Apparatus forIdentifying Concepts Corresponding to Input Information,” filed Jan. 11,2013.

Each of U.S. patent application Ser. Nos. 13/609,218, 13/609,223, and13/609,225 is a continuation-in-part of U.S. patent application Ser. No.13/345,637, titled “Knowledge Representation Systems and MethodsIncorporating Data Consumer Models and Preferences,” filed Jan. 6, 2012,bearing attorney docket number P0913.70031US00. Each of U.S. patentapplication Ser. Nos. 13/609,218, 13/609,223, and 13/609,225 is also acontinuation-in-part of U.S. patent application Ser. No. 13/340,792,titled “Methods and Apparatus for Providing Information of Interest toOne or More Users,” filed Dec. 30, 2011, bearing attorney docket numberP0913.700321US00.

U.S. patent application Ser. No. 13/345,637 claims a priority benefitunder 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No.61/430,836, titled “Constructing Knowledge Representations Using AtomicSemantics and Probabilistic Model,” filed Jan. 7, 2011, U.S. ProvisionalPatent Application No. 61/430,810, titled “Probabilistic Approach forSynthesis of a Semantic Network,” filed Jan. 7, 2011, and U.S.Provisional Patent Application No. 61/471,964, titled “Methods andSystems for Modifying Knowledge Representations Using Textual AnalysisRules,” filed Apr. 5, 2011, U.S. Provisional Patent Application No.61/498,899, titled “Method and Apparatus for Preference Guided DataExploration,” filed Jun. 20, 2011, and U.S. Provisional PatentApplication No. 61/532,330, titled “Systems and Methods forIncorporating User Models and Preferences Into Analysis and Synthesis ofComplex Knowledge Representations, filed Sep. 8, 2011.

U.S. patent application Ser. No. 13/345,637 is a continuation-in-part ofU.S. patent application Ser. No. 13/165,423, titled “Systems and Methodsfor Analyzing and Synthesizing Complex Knowledge Representations,” filedJun. 21, 2011, which application claims a priority benefit under 35U.S.C. § 119(e) to U.S. Provisional Patent Application No. 61/357,266,titled “Systems and Methods for Analyzing and Synthesizing ComplexKnowledge Representations, filed Jun. 22, 2010. All of the foregoingapplications are hereby incorporated by reference in their entireties.

FIELD OF INVENTION

The teachings disclosed herein relate to the field of informationretrieval. In particular, the teachings disclosed herein relate to thedeployment of methods, in a digital information system environment, forusing information associated with a user or users together with one ormore data sets expressed as knowledge representations in order toidentify and provide information, from a larger set of digital content,that may be of interest to the user(s).

BACKGROUND

Information technology is often used to provide users with various typesof information, such as text, audio, video, and any suitable other typeof information. In some cases, information is provided to a user inresponse to an action that the user has taken. For example, informationmay be provided to a user in response to a search query input by theuser or in response to the user's having subscribed to content such asan e-mail alert(s) or an electronic newsletter(s). In other cases,information is provided or “pushed” to a user without the user havingspecifically requested such information. For example, a user mayoccasionally be presented with advertisements or solicitations.

There is a vast array of content that can be provided to users viainformation technology. Indeed, because of the enormous volume ofinformation available via the Internet, the World Wde Web (WWW), and anyother suitable information provisioning sources, and because theavailable information is distributed across an enormous number ofindependently owned and operated networks and servers, locatinginformation of interest to users presents challenges. Similar challengesexist when the information of interest is distributed across largeprivate networks.

Search engines have been developed to aid users in locating desiredcontent on the Internet. A search engine is a computer program thatreceives a search query from a user (e.g., in the form of a set ofkeywords) indicative of content desired by the user, and returnsinformation and/or hyperlinks to information that the search enginedetermines to be relevant to the user's search query.

Search engines typically work by retrieving a large number of WWW webpages and/or other content using a computer program called a “webcrawler” that explores the WWW in an automated fashion (e.g., followingevery hyperlink that it comes across in each web page that it browses).The located web pages and/or content are analyzed and information aboutthe web pages or content is stored in an index. When a user or anapplication issues a search query to the search engine, the searchengine uses the index to identify the web pages and/or content that itdetermines to best match the user's search query and returns a list ofresults with the best-matching web pages and/or content. Frequently,this list is in the form of one or more web pages that include a set ofhyperlinks to the web pages and/or content determined to best match theuser's search query.

SUMMARY

The inventive concepts presented herein are illustrated in a number ofdifferent embodiments, each showing one or more concepts, though itshould be understood that, in general, the concepts are not mutuallyexclusive and may be used in combination even when not so illustrated.

Some embodiments provide for a method comprising obtaining user contextinformation associated with a user; identifying, based on a plurality ofconcepts in a first knowledge representation (KR), a group of one ormore concepts relevant to the user context information; and providingthe identified group of one or more concepts to the user, wherein thefirst KR includes a combination of modules, the modules including akernel and a customized module, the kernel being accessible via a secondKR, the customized module being customized for the user, and wherein theidentifying and the providing are performed at least in part by using atleast one processor and a data structure representing the first KR.

Other embodiments provide for at least one non-transitorycomputer-readable storage medium storing processor executableinstructions that, when executed by at least one processor, cause the atleast one processor to perform a method comprising obtaining usercontext information associated with a user; identifying, based on aplurality of concepts in a first knowledge representation (KR), a groupof one or more concepts relevant to the user context information;providing the identified group of one or more concepts to the user,wherein the first KR includes a kernel and a customized module, thekernel being accessible via a second KR, the customized module beingcustomized for the user, and wherein the identifying and providing areperformed at least in part by using a data structure representing thefirst KR.

Still other embodiments provide for a system comprising at least oneprocessor configured to perform obtaining user context informationassociated with a user; identifying, based on a plurality of concepts ina first knowledge representation (KR), a group of one or more conceptsrelevant to the user context information; identifying contentinformation corresponding to the identified group of one or moreconcepts; and providing the identified content information to the user,wherein the first KR includes a kernel and a customized module, thekernel accessible via by a second KR, the customized module beingcustomized for the user, and wherein the identifying and providing areperformed at least in part by using a data structure representing thefirst KR.

Still other embodiments provide for a system comprising at least oneprocessor configured to perform obtaining user context informationassociated with a user; identifying, based on a plurality of concepts ina knowledge representation (KR), a group of one or more conceptsrelevant to the user context information; identifying contentinformation corresponding to the identified group of one or moreconcepts; and providing the identified content information to the user,wherein the KR includes a kernel and a customized module, the kernelbeing shared by a second KR, the customized module being customized forthe user, and wherein the identifying and providing are performed atleast in part by using at least one processor and a data structurerepresenting the KR.

One embodiment is directed to a method of modifying an elementalcomputer data structure. The elemental computer data structure includesa universal kernel and a plurality of customized modules. The pluralityof customized modules correspond to a respective plurality of dataconsumers. The method comprises, with at least one processor executingstored program instructions: obtaining an indicator regarding anelemental component based on data associated with one or more of theplurality of customized modules; determining whether the indicatorsatisfies a criterion for performing a modification operation on theelemental computer data structure; and based on the indicator satisfyingthe criterion, performing the modification operation on the elementalcomputer data structure. A result provided by the elemental datastructure for a first of the plurality of data consumers depends on theuniversal kernel and is customized for the first data consumer based ona first of the plurality of customized modules.

Another embodiment is directed to an apparatus for modifying anelemental computer data structure. The elemental computer data structureincludes a universal kernel and a plurality of customized modules. Theplurality of customized modules correspond to a respective plurality ofdata consumers. The apparatus includes one or more computer-readablemedia capable of storing the elemental computer data structure; and ananalysis engine configured to obtain an indicator regarding an elementalcomponent based on data associated with one or more of the plurality ofcustomized modules. The analysis engine is also configured to determinewhether the indicator satisfies a criterion for performing amodification operation on the elemental computer data structure; andbased on the indicator satisfying the criterion, perform themodification operation on the elemental computer data structure. Aresult provided by the elemental data structure for a first of theplurality of data consumers depends on the universal kernel and iscustomized for the first data consumer based on a first of the pluralityof customized modules.

Another embodiment is directed to a computer-readable medium storinginstructions which, when executed by a processor, cause the processor toperform a method of modifying elemental computer data structure. Theelemental computer data structure includes a universal kernel and aplurality of customized modules. The plurality of customized modulescorrespond to a respective plurality of data consumers. The methodincludes obtaining an indicator regarding an elemental component basedon data associated with one or more of the plurality of customizedmodules; determining whether the indicator satisfies a criterion forperforming a modification operation on the elemental computer datastructure; and based on the indicator satisfying the criterion,performing the modification operation on the elemental computer datastructure. A result provided by the elemental data structure for a firstof the plurality of data consumers depends on the universal kernel andis customized for the first data consumer based on a first of theplurality of customized modules.

According to one aspect, there is provided a method comprising: using atleast one processor to perform: providing, to a first set of one or moreusers, access to a first semantic network; providing, to a second set ofone or more users, access to a second semantic network, wherein at leasta second subset of the second semantic network has a same topology as atleast a first subset of the first semantic network; and in response toidentifying information corresponding to the second set of one or moreusers, modifying the second semantic network based, at least in part, onthe information corresponding to the second set of one or more users byadding to the second semantic network one or more first elements notincluded in the first semantic network and/or removing from the secondsemantic network one or more second elements included in the firstsemantic network, wherein each of the one or more first and secondelements comprises a concept or a relationship, and wherein the firstand second semantic networks are implemented as computer-readable datastructures, and wherein modifying the second semantic network isperformed by one or more processors executing computer-readableinstructions.

According to another aspect, there is provided a knowledgerepresentation system, comprising: one or more processors; and a memoryunit configured to store instructions which, when executed by the one ormore processors, cause the one or more processors to perform a methodcomprising: providing, to a first set of one or more users, access to afirst semantic network; providing, to a second set of one or more users,access to a second semantic network, wherein at least a second subset ofthe second semantic network has a same topology as at least a firstsubset of the first semantic network; and in response to identifyinginformation corresponding to the second set of one or more users,modifying the second semantic network based, at least in part, on theinformation corresponding to the second set of one or more users byadding to the second semantic network one or more first elements notincluded in the first semantic network and/or removing from the secondsemantic network one or more second elements included in the firstsemantic network, wherein each of the one or more first and secondelements comprises a concept or a relationship, and wherein the firstand second semantic networks are implemented as computer-readable datastructures, and wherein modifying the second semantic network isperformed by one or more processors executing computer-readableinstructions.

According to another aspect, there is provided a computer-readablestorage medium storing processor-executable instructions which, whenexecuted by one or more processors, cause the processors to perform amethod comprising: providing, to a first set of one or more users,access to a first semantic network; providing, to a second set of one ormore users, access to a second semantic network, wherein at least asecond subset of the second semantic network has a same topology as atleast a first subset of the first semantic network; and in response toidentifying information corresponding to the second set of one or moreusers, modifying the second semantic network based, at least in part, onthe information corresponding to the second set of one or more users byadding to the second semantic network one or more first elements notincluded in the first semantic network and/or removing from the secondsemantic network one or more second elements included in the firstsemantic network, wherein each of the one or more first and secondelements comprises a concept or a relationship, and wherein the firstand second semantic networks are implemented as computer-readable datastructures, and wherein modifying the second semantic network isperformed by one or more processors executing computer-readableinstructions.

The foregoing is a non-limiting summary of the invention, which isdefined by the attached claims, it being understood that this summarydoes not necessarily describe the subject matter of each claim and thateach claim is related to only one or some, but not all, embodiments.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings are not intended to be drawn to scale. Likeelements are identified by the same or like reference designations whenpractical. For purposes of clarity, not every component may be labeledin every drawing. In the drawings:

FIG. 1 is a block diagram illustrating an exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 2A illustrates an exemplary complex knowledge representation inaccordance with some embodiments of the present invention;

FIG. 2B illustrates an exemplary elemental data structure of an atomicknowledge representation model in accordance with some embodiments ofthe present invention;

FIG. 3 illustrates an exemplary data schema in accordance with someembodiments of the present invention;

FIG. 4 illustrates an exemplary method for analysis of a complexknowledge representation in accordance with some embodiments of thepresent invention;

FIG. 5 is a block diagram illustrating an exemplary distributed systemfor implementing analysis and synthesis of complex knowledgerepresentations in accordance with some embodiments of the presentinvention;

FIG. 6 is a flowchart illustrating an exemplary method for analyzingcomplex knowledge representations to generate an elemental datastructure in accordance with some embodiments of the present invention;

FIG. 7 is a flowchart illustrating an exemplary method for synthesizingcomplex knowledge representations from an elemental data structure inaccordance with some embodiments of the present invention;

FIG. 8 is a block diagram illustrating an exemplary computing system foruse in practicing some embodiments of the present invention;

FIG. 9 is an illustration of a KR that fails to account foruncertainties associated with the concepts and relationships in the KR;

FIG. 10 is an illustration of a statistical graphical model associatedwith an elemental data structure;

FIG. 11 is a block diagram illustrating another exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 12A is a block diagram illustrating yet another exemplary systemfor implementing an atomic knowledge representation model in accordancewith some embodiments of the present invention;

FIG. 12B is a block diagram illustrating yet another exemplary systemfor implementing an atomic knowledge representation model in accordancewith some embodiments of the present invention;

FIG. 13 is a block diagram illustrating yet another exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 14 is a block diagram illustrating yet another exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 15 is a block diagram illustrating yet another exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 16 is a block diagram illustrating yet another exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 17 is a flow chart of an exemplary process of modifying anelemental data structure based on feedback;

FIG. 18 is a flow chart of an exemplary process of crowd-sourcing anelemental data structure;

FIG. 19 illustrates an example of a knowledge representation that may bemodified by to include a relationship detected in a user model;

FIG. 20 illustrates an example of a knowledge representation that may bemodified by to include a relationship and a concept detected in a usermodel;

FIG. 21A illustrates an example of a knowledge representation containingtwo concepts that may eligible for merging;

FIG. 21B illustrates an example of the knowledge representation of FIG.21A after merging two concepts;

FIG. 22 is a flow chart of an exemplary process of tailoring anelemental data structure;

FIG. 23 illustrates portions of an elemental data structure, includingtwo concepts and their associated characteristic concepts;

FIG. 24 illustrates portions of an elemental data structure, includingtwo concepts and their associated characteristic concepts;

FIG. 25 is a flow chart of an exemplary process of modifying anelemental data structure based on inference;

FIG. 26 is a flow chart of an exemplar)’ process of inferring candidatedata associated with an elemental data structure;

FIG. 27 is a flow chart of an exemplary process of modifying anelemental data structure based on inference of a probability;

FIG. 28 is a flow chart of an exemplary process of inferring a candidateprobability associated with an elemental data structure;

FIG. 29 is a flow chart of an exemplary process of modifying anelemental data structure based on relevance;

FIG. 30 is a flow chart of an exemplary process of a graphical modelassociated with an elemental data structure based on semantic coherence;

FIG. 31 is a block diagram illustrating yet another exemplary system forimplementing an atomic knowledge representation model in accordance withsome embodiments of the present invention;

FIG. 32A is a block diagram of an embodiment of an elemental datastructure;

FIG. 32B is a block diagram of an embodiment of a kernel,

FIG. 33 is a flow chart of an exemplary process of constructing anelemental data structure;

FIG. 34 is a flow chart of additional steps of an exemplary process ofconstructing an elemental data structure;

FIG. 35 is a flow chart of an exemplary process of modifying anelemental data structure;

FIG. 36 is a flow chart of an exemplary process of estimating anindicator regarding an elemental component;

FIG. 37 is a flow chart of an exemplary process of generating a complexknowledge representation from an elemental data structure that includesa kernel and a customized module.

FIG. 38 is a flow chart of a process of operating a knowledgerepresentation system, according to some embodiments; and

FIG. 39 is a flow chart of a process of updating a knowledgerepresentation, according to some embodiments.

DETAILED DESCRIPTION

As will be appreciated from the foregoing, various embodiments aredisclosed. One embodiment is directed to a method for generating acomplex knowledge representation, the method comprising receiving inputindicating a request context; applying, with a processor, one or morerules to an elemental data structure representing at least one elementalconcept, at least one elemental concept relationship, or at least oneelemental concept and at least one elemental concept relationship; basedon the application of the one or more rules, synthesizing, in accordancewith the request context, one or more additional concepts, one or moreadditional concept relationships, or one or more additional concepts andone or more additional concept relationships; and using at least one ofthe additional concepts, at least one of the additional conceptrelationships, or at least one of the additional concepts and at leastone of the additional concept relationships, generating a complexknowledge representation in accordance with the request context.

Another embodiment is directed to a system for generating a complexknowledge representation, the system comprising at least onenon-transitory computer-readable storage medium storingprocessor-executable instructions that, when executed by at least oneprocessor, perform receiving input indicating a request context,applying one or more rules to an elemental data structure representingat least one elemental concept, at least one elemental conceptrelationship, or at least one elemental concept and at least oneelemental concept relationship, based on the application of the one ormore rules, synthesizing, in accordance with the request context, one ormore additional concepts, one or more additional concept relationships,or one or more additional concepts and one or more additional conceptrelationships, and using at least one of the additional concepts, atleast one of the additional concept relationships, or at least one ofthe additional concepts and at least one of the additional conceptrelationships, generating a complex knowledge representation inaccordance with the request context.

Another embodiment is directed to at least one non-transitorycomputer-readable storage medium encoded with a plurality ofcomputer-executable instructions for generating a complex knowledgerepresentation, wherein the instructions, when executed, performreceiving input indicating a request context; applying one or more rulesto an elemental data structure representing at least one elementalconcept, at least one elemental concept relationship, or at least oneelemental concept and at least one elemental concept relationship; basedon the application of the one or more rules, synthesizing, in accordancewith the request context, one or more additional concepts, one or moreadditional concept relationships, or one or more additional concepts andone or more additional concept relationships; and using at least one ofthe additional concepts, at least one of the additional conceptrelationships, or at least one of the additional concepts and at leastone of the additional concept relationships, generating a complexknowledge representation in accordance with the request context.

Another embodiment is directed to a method for deconstructing anoriginal knowledge representation, the method comprising receiving inputcorresponding to the original knowledge representation; applying, with aprocessor, one or more rules to deconstruct the original knowledgerepresentation into one or more elemental concepts, one or moreelemental concept relationships, or one or more elemental concepts andone or more elemental concept relationships; and includingrepresentation of at least one of the elemental concepts, at least oneof the elemental concept relationships, or at least one of the elementalconcepts and at least one of the elemental concept relationships in anelemental data structure.

Another embodiment is directed to a system for deconstructing anoriginal knowledge representation, the system comprising at least onenon-transitory computer-readable storage medium storingprocessor-executable instructions that, when executed by at least oneprocessor, perform receiving input corresponding to an originalknowledge representation, applying one or more rules to deconstruct theoriginal knowledge representation into one or more elemental concepts,one or more elemental concept relationships, or one or more elementalconcepts and one or more elemental concept relationships, and includingrepresentation of at least one of the elemental concepts, at least oneof the elemental concept relationships, or at least one of the elementalconcepts and at least one of the elemental concept relationships in anelemental data structure.

Another embodiment is directed to at least one non-transitorycomputer-readable storage medium encoded with a plurality ofcomputer-executable instructions for deconstructing an originalknowledge representation, wherein the instructions, when executed,perform receiving input corresponding to the original knowledgerepresentation; applying one or more rules to deconstruct the originalknowledge representation into one or more elemental concepts, one ormore elemental concept relationships, or one or more elemental conceptsand one or more elemental concept relationships; and includingrepresentation of at least one of the elemental concepts, at least oneof the elemental concept relationships, or at least one of the elementalconcepts and at least one of the elemental concept relationships in anelemental data structure.

Another embodiment is directed to a method for supporting semanticinteroperability between knowledge representations, the methodcomprising, for each input knowledge representation of a plurality ofinput knowledge representations, applying, with a processor, one or morerules to deconstruct the input knowledge representation into one or moreelemental concepts, one or more elemental concept relationships, or oneor more elemental concepts and one or more elemental conceptrelationships; and with a processor, including representation of atleast one of the elemental concepts, at least one of the elementalconcept relationships, or at least one of the elemental concepts and atleast one of the elemental concept relationships for each of theplurality of input knowledge representations in a shared elemental datastructure.

Another embodiment is directed to a system for supporting semanticinteroperability between knowledge representations, the systemcomprising at least one non-transitory computer-readable storage mediumstoring processor-executable instructions that, when executed by atleast one processor, perform, for each input knowledge representation ofa plurality of input knowledge representations, applying one or morerules to deconstruct the input knowledge representation into one or moreelemental concepts, one or more elemental concept relationships, or oneor more elemental concepts and one or more elemental conceptrelationships; and including representation of at least one of theelemental concepts, at least one of the elemental concept relationships,or at least one of the elemental concepts and at least one of theelemental concept relationships for each of the plurality of inputknowledge representations in a shared elemental data structure.

Another embodiment is directed to at least one non-transitorycomputer-readable storage medium encoded with a plurality ofcomputer-executable instructions for supporting semanticinteroperability between knowledge representations, wherein theinstructions, when executed, perform, for each input knowledgerepresentation of a plurality of input knowledge representations,applying one or more rules to deconstruct the input knowledgerepresentation into one or more elemental concepts, one or moreelemental concept relationships, or one or more elemental concepts andone or more elemental concept relationships; and includingrepresentation of at least one of the elemental concepts, at least oneof the elemental concept relationships, or at least one of the elementalconcepts and at least one of the elemental concept relationships foreach of the plurality of input knowledge representations in a sharedelemental data structure.

One aspect of this disclosure relates to a method of processing aknowledge representation based at least in part on context information.In some embodiments, the context information may comprise preferenceinformation, and the method may comprise synthesizing a complexknowledge representation based at least in part on the preferenceinformation. In some embodiments, the preference information maycomprise a preference model or may be used to create a preference model.In some embodiments, the preference model may contain weights assignedto concepts based on the preference information.

In some embodiments of this aspect of the disclosure, the method maycomprise synthesizing, during formation of the complex knowledgerepresentation, more concepts that are related to a moreheavily-weighted concept in the preference model, and synthesizing fewerconcepts that are related to a less heavily-weighted concept in thepreference model. In some embodiments, the method may comprisesynthesizing, during formation of the complex knowledge representation,concepts that are related to a more heavily-weighted concept in thepreference model before synthesizing concepts that are related to a lessheavily-weighted concept in the preference model.

In some embodiments of this aspect of the disclosure, the method maycomprise assigning rankings to the synthesized concepts in accordancewith the preference information. In some embodiments, the method maycomprise delivering the synthesized concepts to a user interface or adata consumer model in rank order.

Another aspect of this disclosure relates to a computer readable storagemedium encoded with instructions that, when executed on a computer,cause the computer to implement some embodiment(s) of the aforementionedmethod.

Another aspect of this disclosure relates to a system for processing aknowledge representation based at least in part on user information. Insome embodiments, the system may comprise a synthesis engine (e.g.,programmed processor(s)) configured to synthesize a complex knowledgerepresentation based at least in part on preference information. In someembodiments, the system may comprise a preference engine (e.g.,programmed processor(s)) configured to provide a preference model basedat least in part on the preference information. In some embodiments, thepreference model may contain weights assigned to concepts based on thepreference information.

In some embodiments of this aspect of the disclosure, the synthesisengine may be configured to synthesize, during formation of the complexknowledge representation, more concepts that are related to a moreheavily-weighted concept in the preference model, and configured tosynthesize fewer concepts that are related to a less heavily-weightedconcept in the preference model. In some embodiments, the synthesisengine may, during formation of the complex knowledge representation, beconfigured to synthesize concepts in the complex knowledgerepresentation that are related to a more heavily-weighted concept inthe preference model before synthesizing concepts in the complexknowledge representation that are related to a less heavily-weightedconcept in the preference model.

In some embodiments of this aspect of the disclosure, the preferenceengine may be configured to assign rankings to the synthesized conceptsin accordance with the preference information. In some embodiments, thepreference engine may be configured to deliver the synthesized conceptsto a user interface or a data consumer model in rank order.

The sheer volume of content accessible via digital information systemspresents a number of information retrieval problems. One challengingproblem is how to determine what information, in a large set of content,may be of interest to users so that such information may be presented tothe users without overwhelming them with irrelevant information.Accordingly, the inventors have recognized the need for techniques foridentifying information of interest to users in a large set of contentand presenting such content to the users.

I. Atomic Knowledge Representation Model (AKRM)

Knowledge representation relates to making abstract knowledge explicit,as data structures, to support machine-based storage, management (e.g.,information location and extraction), and reasoning systems.Conventional methods and systems exist for utilizing knowledgerepresentations (KRs) constructed in accordance with various types ofknowledge representation models, including structured controlledvocabularies such as taxonomies, thesauri and faceted classifications;formal specifications such as semantic networks and ontologies; andunstructured forms such as documents based in natural language.

A taxonomy is a KR structure that organizes categories into ahierarchical tree and associates categories with relevant objects suchas physical items, documents or other digital content. Categories orconcepts in taxonomies are typically organized in terms of inheritancerelationships, also known as supertype-subtype relationships,generalization-specialization relationships, or parent-childrelationships. In such relationships, the child category or concept hasthe same properties, behaviors and constraints as its parent plus one ormore additional properties, behaviors or constraints. For example, thestatement of knowledge, “a dog is a mammal,” can be encoded in ataxonomy by concepts/categories labeled “mammal” and “dog” linked by aparent-child hierarchical relationship. Such a representation encodesthe knowledge that a dog (child concept) is a type of mammal (parentconcept), but not every mammal is necessarily a dog.

A thesaurus is a KR representing terms such as search keys used forinformation retrieval, often encoded as single-word noun concepts. Linksbetween terms/concepts in thesauri are typically divided into thefollowing three types of relationships: hierarchical relationships,equivalency relationships and associative relationships. Hierarchicalrelationships are used to link terms that are narrower and broader inscope than each other, similar to the relationships between concepts ina taxonomy. To continue the previous example, “dog” and “mammal” areterms linked by a hierarchical relationship. I equivalency relationshipslink terms that can be substituted for each other as search terms, suchas synonyms or near-synonyms. For example, the terms “dog” and “canine”could be linked through an equivalency relationship in some contexts.Associative relationships link related terms whose relationship isneither hierarchical nor equivalent. For example, a user searching forthe term “dog” may also want to see items returned from a search for“breeder”, and an associative relationship could be encoded in thethesaurus data structure for that pair of terms.

Faceted classification is based on the principle that information has amulti-dimensional quality, and can be classified in many different ways.Subjects of an informational domain are subdivided into facets (or moresimply, categories) to represent this dimensionality. The attributes ofthe domain are related in facet hierarchies. The objects within thedomain are then described and classified based on these attributes. Forexample, a collection of clothing being offered for sale in a physicalor web-based clothing store could be classified using a color facet, amaterial facet, a style facet, etc., with each facet having a number ofhierarchical attributes representing different types of colors,materials, styles, etc. Faceted classification is often used in facetedsearch systems, for example to allow a user to search the collection ofclothing by any desired ordering of facets, such as by color-then-style,by style-then-color, by material-then-color-then-style, or by any otherdesired prioritization of facets. Such faceted classification contrastswith classification through a taxonomy, in which the hierarchy ofcategories is fixed.

A semantic network is a KR that represents various types of semanticrelationships between concepts using a network structure (or a datastructure that encodes or instantiates a network structure). A semanticnetwork is typically represented as a directed or undirected graphconsisting of vertices representing concepts, and edges representingrelationships linking pairs of concepts. An example of a semanticnetwork is WordNet, a lexical database of the English language. Somecommon types of semantic relationships defined in WordNet are meronymy(A is part of B), hyponymy (A is a kind of B), synonymy (A denotes thesame as B) and antonymy (A denotes the opposite of B). References to asematic network or other KRs as being represented by a graph should beunderstood as indicating that a semantic network or other KR may beencoded into a data structure in a computer-readable memory or file orsimilar organization, wherein the structure of the data storage or thetagging of data therein serves to identify for each datum itssignificance to other data—e.g., whether it is intended as the value ofa node or an end point of an edge or the weighting of an edge, etc.

An ontology is a KR structure encoding concepts and relationshipsbetween those concepts that is restricted to a particular domain of thereal or virtual world that it is used to model. The concepts included inan ontology typically represent the particular meanings of terms as theyapply to the domain being modeled or classified, and the includedconcept relationships typically represent the ways in which thoseconcepts are related within the domain. For example, conceptscorresponding to the word “card” could have different meanings in anontology about the domain of poker and an ontology about the domain ofcomputer hardware.

In general, all of the above-discussed types of KRs, as well as otherconventional examples, are tools for modeling human knowledge in termsof abstract concepts and the relationships between those concepts, andfor making that knowledge accessible to machines such as computers forperforming various knowledge-requiring tasks. As such, human users andsoftware developers conventionally construct KR data structures usingtheir human knowledge, and manually encode the completed KR datastructures into machine-readable form as data structures to be stored inmachine memory and accessed by various machine-executed functions.

As discussed above, a knowledge representation (KR) data structurecreated through conventional methods encodes and represents a particularset of human knowledge being modeled for a particular domain or context.As KRs are typically constructed by human developers and programmed incompleted form into machine memory, a conventional KR contains only thatsubset of human knowledge with which it is originally programmed by ahuman user.

For example, a KR might encode the knowledge statement, “a dog is amammal,” and it may also express statements or assertions about animalsthat are mammals, such as, “mammals produce milk to feed their young.”Such a combination of facts, when combined with appropriate logical andsemantic rules, can support a broad range of human reasoning, makingexplicit various inferences that were not initially seeded as factwithin the KR, such as, “dogs produce milk to feed their young.”Expansions of KR data structures through such inferences may be used tosupport a variety of knowledge-based activities and tasks, such asinference/reasoning (as illustrated above), information retrieval, datamining, and other forms of analysis.

However, as discussed above, methods for constructing and encoding KRshave conventionally been limited to manual input of complete KRstructures for access and use by machines such as computers. Continuingthe example above, although a human person acting as the KR designer mayimplicitly understand why the fact “dogs produce milk to feed theiryoung” is true, the properties that must hold to make it true (in thiscase, properties such as transitivity and inheritance) are notconventionally an explicit part of the KR. In other words, anyunderlying set of rules that may guide the creation of new knowledge isnot conventionally encoded as part of the KR, but rather is applied fromoutside the system in the construction of the KR by a human designer.

A previously unrecognized consequence of conventional approaches is thatknowledge can be expressed in a KR for use by machines, but the KRitself cannot be created by machines. Humans are forced to model domainsof knowledge for machine consumption. Unfortunately, because humanknowledge is so tremendously broad and in many cases subjective, it isnot technically feasible to model all knowledge domains.

Furthermore, since so much of the knowledge must be explicitly encodedas data, the resulting data structures quickly become overwhelminglylarge as the domain of knowledge grows. Since conventional KRs are notencoded with their underlying theories or practices for knowledgecreation as part of the data making up the knowledge representationmodel, their resulting data structures can become very complex andunwieldy. In other words, since the knowledge representation cannot becreated by the machine, it conventionally must either be provided asexplicit data or otherwise deduced or induced by logical or statisticalmeans.

Thus, conventional approaches to constructing knowledge representationsmay lead to a number of problems including difficulty scaling as datasize increases, difficulty dealing with complex and large datastructures, dependence on domain experts, high costs associated withlarge-scale data storage and processing, challenges related tointegration and interoperability, and high labor costs.

Large and complex data structures: The data structures thatconventionally encode knowledge representations are complex to build andmaintain. Even a relatively simple domain of machine-readable knowledge(such as simple statements about dogs and mammals) can generate a volumeof data that is orders of magnitude greater than its natural languagecounterpart.

Dependency on domain experts: The underlying theories that direct thepractice of KR must be expressed by human beings in the conventionalcreation of a KR data structure. This is a time-consuming activity thatexcludes most people and all machines in the production of these vitaldata assets. As a result, most of human knowledge heretofore hasremained implicit and outside the realm of computing.

Data created before use; Knowledge is conventionally modeled as databefore such time as it is called for a particular use, which isexpensive and potentially wasteful if that knowledge is not needed.Accordingly, if the knowledge could be created by machines as needed, itcould greatly decrease data production and storage requirements.

Large-scale data and processing costs; Conventional KR systems mustreason over very large data structures in the service of creating newfacts or answering queries. This burden of scale represents asignificant challenge in conventional KR systems, a burden that could bereduced by using more of a just-in-time method for creating theunderlying data structures, rather than the conventional data-before-usemethods.

Integration and interoperability challenges; Semantic interoperability(the ability for two different KRs to share knowledge) is a massivelydifficult challenge when various KRs are created under different modelsand expressed in different ways, often dealing with subjective andambiguous subjects. Precision and the ability to reason accurately areoften lost across multiple different KRs. In this respect, if theunderlying theories for how the knowledge was created were included aspart of the KR, then reconciliation of knowledge across different KRsmay become a tractable problem.

High labor costs; Manual construction of a KR data structure may be alabor-intensive process. Accordingly, manual construction techniques maybe insufficient to handle a corpus of information that is alreadyenormous and continually increasing in size.

Accordingly, some embodiments in accordance with the present disclosureprovide a system that encodes knowledge creation rules to automate theprocess of creating knowledge representations. Some embodiments employprobabilistic methods to assist in the creation of knowledgerepresentations and/or to check their semantic coherence. Someembodiments combine new synthetic approaches to knowledge representationwith computing systems for creating and managing the resulting datastructures derived from such approaches. In some embodiments, anestimate of a semantic coherence of first and second concepts havingfirst and second labels, respectively, may be obtained by calculating afrequency of co-occurrence of the first and second labels in a corpus ofreference documents.

Rather than modeling all the knowledge in the domain as explicit data,some embodiments combine a less voluminous data set of ‘atomic’ or‘elemental’ data with a set of generative rules that encode theunderlying knowledge creation. Such rules may be applied by the systemin some embodiments when needed or desired to create new knowledge andexpress it explicitly as data. It should be appreciated from the abovediscussion that a benefit of such techniques may be, in at least somesituations, to reduce the amount of data in the system substantially, aswell as to provide new capabilities and applications for machine-basedcreation (synthesis) of new knowledge. However, it should be appreciatedthat not every embodiment in accordance with the present invention mayaddress every identified problem of conventional approaches, and someembodiments may not address any of these problems. Some embodiments mayalso address problems other than those recited here. Moreover, not everyembodiment may provide all or any of the benefits discussed herein, andsome embodiments may provide other benefits not recited.

Some embodiments also provide techniques for complex knowledgerepresentations such as taxonomies, ontologies, and facetedclassifications to interoperate, not just at the data level, but also atthe semantic level (interoperability of meaning).

Other benefits that may be afforded in some embodiments and may beapplied across many new and existing application areas include: lowercosts in both production and application of knowledge representationsafforded by simpler and more economical data structures; possibilitiesfor new knowledge creation; more scalable systems afforded byjust-in-time, as-needed knowledge; and support of “context” from usersand data consumers as input variables. The dynamic nature of someembodiments in accordance with the present disclosure, which applysynthesis and analysis knowledge processing rules on a just-in-timebasis to create knowledge representation data structures, may providemore economical benefits than conventional methods that analyze andmodel an entire domain of knowledge up front.

By incorporating an underlying set of rules of knowledge creation withinthe KR, the amount of data in the system may be reduced, providing amore economical system of data management, and providing entirely newapplications for knowledge management. Thus, in some embodiments, thecost of production and maintenance of KR systems may be lowered byreducing data scalability burdens, with data not created unless it isneeded. Once created, the data structures that model the complexknowledge in some embodiments are comparatively smaller than inconventional systems, in that they contain the data relevant to the taskat hand. This in turn may reduce the costs of downstream applicationssuch as inference engines or data mining tools that work over theseknowledge models.

The synthetic, calculated approach of some embodiments in accordancewith the present disclosure also supports entirely new capabilities inknowledge representation and data management. Some embodiments mayprovide improved support for “possibility”, i.e., creatingrepresentations of entirely new knowledge out of existing data. Forexample, such capability of possibility may be useful for creativeactivities such as education, journalism, and the arts.

Customization of a knowledge representation for multiple users presentsadditional challenges. A knowledge representation, whether manuallyconstructed or automatically constructed, may encode universal knowledgeassociated with a population of users, without encoding the knowledgethat is specific to individual users. For example, a knowledgerepresentation may indicate that two concepts share a label “cricket,”where one of these concepts is relevant to the concept “insect” andanother to the concept “sport.” This knowledge representation may notindicate that a first user (e.g., an entomologist) strongly associatesin his or her mind the concept “cricket” with the concept “insect,”while a second user (e.g., an avid fan of cricket matches) stronglyassociates in his or her mind the concept “cricket” with the concept“sport.”

An insufficiently customized knowledge representation may lead to pooruser experiences with the knowledge representation system. To continuethe previous example, the entomologist may become dissatisfied with theKR system if the KR system consistently responds to queries about“cricket” with information about international cricket players ratherthan information about insects. Also, customization of a KR may bebeneficial to e-commerce entities (e.g., advertisers or businesses) thatseek to target individual users with customized advertisements, offers,web sites, prices, etc.

Accordingly, the inventors have recognized and appreciated that methodsand systems for customizing knowledge representations to a user mayimprove the user's experience with a KR system.

Various inventive aspects described herein may be implemented by one ormore computers and/or devices each having one or more processors thatmay be programmed to take any of the actions described herein for usingan atomic knowledge representation model in analysis and synthesis ofcomplex knowledge representations. For example, FIG. 8 shows,schematically, an illustrative computer 1100 on which various inventiveaspects of the present disclosure may be implemented. The computer 1100includes a processor or processing unit 1101 and a memory 1102 that mayinclude volatile and/or non-volatile memory. The memory 1102 may storecomputer-readable instructions which, when executed on processor 1101,cause the computer to perform the inventive techniques described herein.Techniques for implementing the inventive aspects described herein, e.g.programming a computer to implement the methods and data structuresdescribed herein, are believed to be within the skill in the art.

FIG. 1 illustrates an exemplary system 100 that may be employed in someembodiments for implementing an atomic knowledge representation model(AKRM) involved in analysis and synthesis of complex knowledgerepresentations (KRs), in accordance with some embodiments of thepresent invention. In an exemplary system 100, an AKRM may be encoded ascomputer-readable data and stored on one or more tangible,non-transitory computer-readable storage media. For example, an AKRM maybe stored in a data set 110 in non-volatile computer memory, examples ofwhich are given below, with a data schema designed to support bothelemental and complex knowledge representation data structures.

In some embodiments, an AKRM may include one or more elemental datastructures 120 and one or more knowledge processing rules 130. In someembodiments, rules 130 may be used by system 100 to deconstruct(analyze) one or more complex KRs to generate an elemental datastructure 120. For example, system 100 may include one or more computerprocessors and one or more computer memory hardware components, and thememory may be encoded with computer-executable instructions that, whenexecuted by the one or more processors, cause the one or more processorsof system 100 to use the rules 130 in the analysis of one or morecomplex KRs to generate elemental data structure 120 of the AKRM. Thememory may also be encoded with instructions that program the one ormore processors to use the rules 130 to synthesize new complex KRs fromelemental data structure 120. In some embodiments, the computer memorymay be implemented as one or more tangible, non-transitorycomputer-readable storage media encoded with computer-executableinstructions that, when executed, cause one or more processors toperform any of the functions described herein.

Unlike previous knowledge representation systems, a system in accordancewith some embodiments of the present invention, such as system 100, maycombine data structures and knowledge processing rules to createknowledge representation models encoded as data. In some embodiments,rules may not be encoded as knowledge (e.g., as rules or axioms thatdescribe the boundaries or constraints of knowledge within a particulardomain), but rather as constructive and deconstructive rules forcreating the data structures that represent new knowledge. In additionto “inference rules” for generating implicit facts that are logicalconsequences of the explicit concepts given by an original KR, in someembodiments a knowledge representation model may be encoded with“knowledge processing rules” that can be applied to create new knowledgethat may not be implicit from the original KR data structure.

For example, starting with two explicit knowledge statements, “Mary is aperson,” and, “All people are humans,” inference rules may be applied todetermine the implicit knowledge statement, “Mary is a human,” which isa logical consequence of the previous two statements. In a differentexample in accordance with some embodiments of the present invention,starting with two explicit knowledge statements, “Mary is a friend ofBob,” and, “Bob is a friend of Charlie,” exemplary knowledge processingrules modeling the meaning of friendship relationships may be applied todetermine the new knowledge statement. “Mary is a friend of Charlie.”Notably, application of such knowledge processing rules may result innew knowledge that is not necessarily a logical consequence of theexplicit knowledge given in an original input KR. As described above, aknowledge representation model in accordance with some embodiments ofthe present invention, including knowledge processing rules (as opposedto or in addition to logical inference rules) stored in association withdata structures encoding concepts and concept relationships, may modelframeworks of how new and potentially non-implicit knowledge can becreated and/or decomposed.

Such focus on the synthesis of knowledge may move a system such assystem 100 into new application areas. Whereas existing systems focus ondeductive reasoning (i.e., in which insights are gleaned through precisedeductions of existing facts and arguments), a system in accordance withsome embodiments of the present invention may support inductivereasoning as well as other types of theory-building (i.e. in whichexisting facts may be used to support probabilistic predictions of newknowledge).

In some embodiments in accordance with the present invention, a systemsuch as system 100 may be based loosely on frameworks of conceptualsemantics, encoding semantic primitives (e.g., “atomic” or “elemental”concepts) and rules (principles) that guide how such atomic structurescan be combined to create more complex knowledge. It should beappreciated, however, that a system in accordance with embodiments ofthe present invention may function within many such frameworks, asaspects of the present invention are not limited to any particulartheory, model or practice of knowledge representation. In someembodiments, a system such as system 100 may be designed to interfacewith a broad range of methods and technologies (e.g., implemented assoftware applications or components) that model these frameworks. Forexample, interfacing analysis components such as analysis engine 150 maydeconstruct input complex KRs 160 to elemental data structures 120.Synthesis components such as synthesis engine 170 may construct newoutput complex KRs 190 using elemental data structures 120.

The synthesis engine 170 may provide an output KR 190 using techniquesknown in the art or any other suitable techniques. For example, outputKR 190 may be provided as a tabular or graphical data structure storedin a computer-readable medium. Alternatively or additionally, output KR190 may be displayed on a monitor or any other suitable interlace.

In some embodiments, analysis engine 150 may, for example throughexecution of appropriate computer-readable instructions by one or moreprocessors of system 100, analyze an input complex KR 160 by applyingone or more of the knowledge processing rules 130 to deconstruct thedata structure of the input KR 160 to more elemental constructs. In someembodiments, the most elemental constructs included within the elementaldata structure 120 of AKRM 110 may represent a minimum set offundamental building blocks of information and information relationshipswhich in the aggregate provide the information-carrying capacity withwhich to classify the input data structure. Input KR 160 may be obtainedfrom any suitable source, including direct input from a user or softwareapplication interacting with system 100. In some embodiments, input KRs160 may be obtained through interfacing with various databasetechnologies, such as a relational or graph-based database system. Itshould be appreciated that input KRs 160 may be obtained in any suitableway in any suitable form, as aspects of the present invention are notlimited in this respect.

For example, FIG. 2A illustrates a small complex KR 200 (in thisexample, a taxonomy) that may be input to analysis engine 150, e.g., bya user or a software application using system 100. Complex KR 200includes a set of concepts linked by various hierarchical relationships.For example, concept 210 labeled “Animal” is linked in parent-childrelationships to concept 220 labeled “Pet” and concept 230 labeled“Mountain Animal”. At each level of the hierarchy, a concept entityrepresents a unit of meaning that can be combined to create more complexsemantics or possibly deconstructed to more elemental semantics. Forexample, the complex meaning of “Mountain Animal” may comprise theconcepts “Mountain” and “Animal”.

In some embodiments, system 100 may, e.g., through analysis engine 150,deconstruct a complex KR such as complex KR 200 to discover at leastsome of the elemental concepts that comprise complex concepts of thecomplex KR. For example, FIG. 2B illustrates an elemental data structure300 that may result from analysis and deconstruction of complex KR 200.In elemental data structure 300, complex concept 230 labeled “MountainAnimal” has been found to include more elemental concepts 235 labeled“Mountain” and 240 labeled “Animal”. In this example, “Mountain” and“Animal” represent more elemental (i.e., “lower level” or less complex)concepts than the more complex concept labeled “Mountain Animal”, sincethe concepts of “Mountain” and “Animal” can be combined to create theconcept labeled “Mountain Animal”. Similarly, complex concept 250labeled “Domestic Dog” has been found to include more elemental concepts255 labeled “Domestic” and 260 labeled “Dog”, and complex concept 270labeled “Siamese Cat” has been found to include more elemental concepts275 labeled “Siamese” and 280 labeled “Cat”. In addition, each newlydiscovered elemental concept has inherited concept relationships fromthe complex concept that comprises it. Thus, “Domestic”, “Dog”,“Siamese” and “Cat” are children of “Pet”; “Mountain” and “Animal”(concept 240) are children of “Animal” (concept 210); and “Mountain” and“Animal” (concept 240) are both parents of both concept 290 labeled“Lion” and concept 295 labeled “Goat”.

Note that, although the label “Animal” is ascribed to both concept 210and concept 240 in elemental data structure 300, the two concepts maystill represent different abstract meanings that function differentlywithin the knowledge representation hierarchy. In some embodiments,“labels” or “symbols” may be joined to abstract concepts to providehuman- and/or machine-readable terms or labels for concepts andrelationships, as well as to provide the basis for various symbol-basedprocessing methods (such as text analytics). Labels may provideknowledge representation entities that are discernible to humans and/ormachines, and may be derived from the unique vocabulary of the sourcedomain. Thus, since the labels assigned to each concept element may bedrawn from the language and terms presented in the domain, the labelsthemselves may not fully describe the abstract concepts and conceptrelationships they are used to name, as those abstract entities arecomprehended in human knowledge.

Similarly, in some embodiments a difference should be appreciatedbetween abstract concepts in a knowledge representation model and theobjects those concepts may be used to describe or classify. An objectmay be any item in the real physical or virtual world that can bedescribed by concepts (for instance, examples of objects are documents,web pages, people, etc.). For example, a person in the real world couldbe represented in the abstract by a concept labeled “Bob”. Theinformation in a domain to be described, classified or analyzed mayrelate to virtual or physical objects, processes, and relationshipsbetween such information. In some exemplary embodiments, complex KRs asdescribed herein may be used in the classification of content residingwithin Web pages. Other types of domains in some embodiments may includedocument repositories, recommendation systems for music, software coderepositories, models of workflow and business processes, etc.

In some embodiments, the objects of the domain to be classified may bereferred to as content nodes. Content nodes may be comprised of anyobjects that are amenable to classification, description, analysis, etc.using a knowledge representation model. For example, a content node maybe a file, a document, a chunk of a document (like an annotation), animage, or a stored string of characters. Content nodes may referencephysical objects or virtual objects. In some embodiments, content nodesmay be contained in content containers that provide addressable (orlocatable) information through which content nodes can be retrieved. Forexample, the content container of a Web page, addressable through a URL,may contain many content nodes in the form of text and images. Conceptsmay be associated with content nodes to abstract some meaning (such asthe description, purpose, usage, or intent of the content node). Forexample, aspects of a content node in the real world may be described byconcepts in an abstract representation of knowledge.

Concepts may be defined in terms of compound levels of abstractionthrough their relationships to other entities and structurally in termsof other, more fundamental knowledge representation entities (e.g.,keywords and morphemes). Such a structure is known herein as a conceptdefinition. In some embodiments, concepts may be related through conceptrelationships of two fundamental types; intrinsic, referring to joinsbetween elemental concepts to create more complex concepts (e.g., therelationship between “Mountain”, “Animal” and “Mountain Animal” inelemental data structure 300); and extrinsic, referring to joins betweencomplex relationships. Extrinsic relationships may describe featuresbetween concept pairs, such as equivalence, hierarchy (e.g., therelationship between “Animal” and “Pet”), and associations. Further, insome embodiments the extrinsic and intrinsic concept relationshipsthemselves may also be described as types of concepts, and they may betyped into more complex relationships. For example, an associativerelationship “married-to” may comprise the relationship concepts“married” and “to”.

In some embodiments, the overall organization of the AKRM data modelstored as elemental data structure 120 in system 100 may be encoded as afaceted data structure, wherein conceptual entities are relatedexplicitly in hierarchies (extrinsic relationships), as well as joinedin sets to create complex concepts (intrinsic relationships). Further,these extrinsic and intrinsic relationships themselves may be typedusing concepts, as discussed above. However, it should be appreciatedthat any suitable type of knowledge representation model or theoreticalconstruct including any suitable types of concept relationships may beutilized in representing an AKRM, as aspects of the present inventionare not limited in this respect.

For illustration, FIG. 3 provides an exemplary data schema 350 that maybe employed in the data set 110 of system 100 in accordance with someembodiments of the present invention. Such a data schema may be designedto be capable of encoding both complex knowledge representation datastructures (complex KRs) such as ontologies and taxonomies, as well asthe atomic knowledge representation data structures into which complexKRs are decomposed (e.g., elemental data structure 120). In schema 350,concepts may be joined to compose more complex types (has-type) usingmany-to-many relationships. In this way, the core concept entities inthe model may represent a wide diversity of simplicity or complexity,depending on the nature of the complex knowledge representation that isbeing modeled by the data. By joining symbols, rules, and objects tothese concepts using many-to-many relationships, such a schema maymanage the data to model a broad range of knowledge representations.

In schema 350 as illustrated in FIG. 3, rectangular boxes represententity sets, e.g., real-world objects that may be encoded as mainobjects in a database, as well as abstract concepts, human- and/ormachine-readable symbols that reference concepts, and rules that applyto concepts in the knowledge representation. Each solid line connectorrepresents a relationship between two entity sets, with a relationshiptype as represented by a diamond. “N” denotes the participationcardinality of the relationship; here, the relationships aremany-to-many, indicating that many entities of each entity set canparticipate in a relationship with an entity of the other entity setparticipating in the relationship, and vice versa. By contrast, arelationship labeled “1” on both sides of the diamond would represent aone-to-one relationship; a relationship labeled “1” on one side and “N”on the other side would represent a one-to-many relationship, in whichone entity of the first type could participate in the relationship withmany entities of the second type, while each entity of the second typecould participate in that relationship with only one entity of the firsttype; etc.

In some embodiments, the data structure of a knowledge representationmay be encoded in accordance with schema 350 in one or more databasetables, using any suitable database and/or other data encodingtechnique. For example, in some embodiments a data set for a KR datastructure may be constructed as a computer-readable representation of atable, in which each row represents a relationship between a pair ofconcepts. For instance, one example of a data table could have fourattribute columns, including a “concept 1” attribute, a “concept 2”attribute, a “relationship” attribute and a “type” attribute, modeling athree-way relationship for each row of the table as, “concept 1 isrelated to concept 2 through a relationship concept of a type (e.g.,extrinsic or intrinsic)”. For example, a row of such a table with theattributes (column entries) {concept 1: “Hammer”; concept 2: “Nail”;relationship: “Tool”; type: “Extrinsic” } could represent therelationship: “Hammer” is related to “Nail” as a “Tool”, and therelationship is “Extrinsic′.” In many exemplary data structures, eachconcept may appear in one or more rows of a database table, for exampleappealing in multiple rows to represent relationships with multipleother concepts. In addition, a particular pair of concepts may appear inmore than one row, for example if that pair of concepts is relatedthrough more than one type of relationship. It should be appreciated,however, that the foregoing description is by way of example only, anddata structures may be implemented and/or encoded and stored in anysuitable way, as aspects of the present invention are not limited inthis respect.

In some embodiments, various metadata may be associated with each of theentities (e.g., concepts and concept relationships) within the AKRM tosupport rules-based programming. For example, since many rules wouldrequire a sorted set of concepts, a priority of concepts within conceptrelationships (intrinsic or extrinsic) could be added to this schema.These details are omitted here only to simplify the presentation of thedata model.

Although the exemplary data schema of FIG. 3 may be relatively simple,when it is married to machine-implemented (e.g., computer-implemented)processing rules for constructing and deconstructing knowledgerepresentations, it may become capable of managing a very broad range ofcomplex knowledge (as described in various examples below). Benefits mayinclude real-time knowledge engineering to improve data economy andreduce the need for building complexity into large knowledgerepresentation data structures. Further, as the scope of the knowledgerepresentation data structures is reduced, it may also have beneficialeffects on integrated knowledge engineering processes, such asreasoning, analytics, data mining, and search.

Returning to FIG. 1, in some embodiments knowledge processing rules 130may be encoded and stored in system 100, for example in data set 110,and may be joined to concepts within input KRs 160 and/or elemental datastructure 120. Rules may be joined to concepts such that given aspecific concept, the rules may be applied through execution ofprogramming code by one or more processors of system 100 to generate newsemantic entities (concepts and relationships) from elemental datastructure 120 and/or to deconstruct input KRs 160 into elementalentities to be included in elemental data structure 120. Examples ofsuch rules are described in more detail below.

Rules 130 may be introduced to data set 110 as input rules 140, forexample by a developer of system 100, and/or by end users of system 100in accordance with their individual knowledge processing needs orpreferences. It should be appreciated that input rules 140 may beobtained from any suitable source at any suitable time, rules 130 storedas part of the AKRM may be updated and/or changed at any suitable timeby any suitable user before or during operation of system 100; anddifferent stored rules 130 may be maintained for different users orapplications that interact with system 100, as aspects of the presentinvention are not limited in these respects. In addition, in someembodiments different subsets of stored rules 130 may be applied toanalysis of input KRs 160 than to synthesis of output KRs 190, while inother embodiments the same rules 130 may be applied in both analysis andsynthesis operations, and different subsets of stored rules 130 may beapplied to different types of knowledge representation.

Rules 130, when applied to concepts in analysis and synthesis of KRs,may provide the constructive and deconstructive logic for a system suchas system 100. Methods of how knowledge is created (synthesized) ordeconstructed (analyzed) may be encoded in sets of rules 130. Rules 130may be designed to work symmetrically (single rules operating in bothanalysis and synthesis) or asymmetrically (where single rules aredesigned to work only in synthesis or analysis). In some embodiments,rules 130 may not be encoded as entities within a concept data structureof a knowledge model, but rather as rules within the knowledgerepresentation model that operate in a generative capacity upon theconcept data structure. In some embodiments, rules 130 may be encoded asdata and stored along with the knowledge representation data structures,such as elemental data structure 120, in a machine-readable encoding ofan AKRM including rules. Rules 130 may be applied using a rules enginesoftware component, e.g., implemented by programming instructionsencoded in one or more tangible, non-transitory computer-readablestorage media included in or accessible by system 100, executed by oneor more processors of system 100 to provide the rules engine.

Analysis engine 150 and synthesis engine 170 may use any of variousmethods of semantic analysis and synthesis to support the constructionand deconstruction of knowledge representation data structures, asaspects of the present invention arc not limited in this respect.Examples of analytical methods that may be used by analysis engine 150,along with application of rules 130, in deconstructing input complex KRs160 include text analyses, entity and information extraction,information retrieval, data mining, classification, statisticalclustering, linguistic analyses, facet analysis, natural languageprocessing and semantic knowledge-bases (e.g. lexicons, ontologies,etc.). Examples of synthetic methods that may be used by synthesisengine 170, along with application of rules 130, in constructing complexKRs 190 include formal concept analysis, faceted classificationsynthesis, semantic synthesis and dynamic taxonomies, and variousgraphical operations as described in U.S. patent application Ser. No.13/340,792, tilled “Methods and Apparatuses for Providing Information ofInterest to One or More Users,” filed Dec. 30, 2011, and/or U.S. patentapplication Ser. No. 13/340,820, titled “Methods and Apparatuses forProviding Information of Interest to One or More Users,” filed Dec. 30,2011, all of which are hereby incorporated by reference in theirentities.

It should be appreciated that exemplary methods of analysis andsynthesis of complex KRs may be performed by analysis engine 150 andsynthesis engine 170 operating individually and/or in conjunction withany suitable external software application that may interface with theengines and/or system 100. Such external software applications may beimplemented within the same physical device or set of devices as othercomponents of system 100, or parts or all of such software applicationsmay be implemented in a distributed fashion in communication with otherseparate devices, as aspects of the present invention are not limited inthis respect.

FIG. 4 illustrates one exemplary method 400 of semantic analysis thatmay be used by analysis engine 150 in deconstructing an input complex KR160. It should be appreciated that the method illustrated in FIG. 4 ismerely one example, and many other methods of analysis are possible, asdiscussed above, as aspects of the present invention are not limited inthis respect. Exemplary method 400 begins with extraction of a sourceconcept 410 with a textual concept label explicitly presented in thesource data structure. Multiple source concepts 410 may be extractedfrom a source data structure, along with source concept relationshipsbetween the source concepts 410 that may explicitly present in thesource data structure.

A series of keyword delineators may be identified in the concept labelfor source concept 410. Preliminary keyword ranges may be parsed fromthe concept label based on common structural textual delineators ofkeywords (such as parentheses, quotes, and commas). Whole words may thenbe parsed from the preliminary keyword ranges, again using common worddelineators (such as spaces and grammatical symbols). Checks for singleword independence may then be performed to ensure that the parsedcandidate keywords are valid. In some embodiments, a check for wordindependence may be based on word stem (or word root) matching,hereafter referred to as “stemming”. Once validated, if a word ispresent in one concept label with other words, and is present in arelated concept label absent those other words, then the word maydelineate a keyword.

Once a preliminary set of keyword labels is thus generated, allpreliminary keyword labels may be examined in the aggregate to identifycompound keywords, which present more than one valid keyword labelwithin a single concept label. For example, “basketball” may be acompound keyword containing keyword labels “basket” and “ball” in asingle concept label. In some embodiments, recursion may be used toexhaustively split the set of compound keywords into the most elementalset of keywords that is supported by the source data. The process ofcandidate keyword extraction, validation and splitting may be repeateduntil no additional atomic keywords can be found and/or until the mostelemental set of keywords supported by the source data has beenidentified.

In some embodiments, a final method round of consolidation may be usedto disambiguate keyword labels across the entire domain. Suchdisambiguation may be used to resolve ambiguities that emerge whenentities share the same labels. In some embodiments, disambiguation maybe provided by consolidating keywords into single structural entitiesthat share the same label. The result may be a set of keyword concepts,each included in a source concept from which it was derived. Forexample, source concept 410 may be deconstructed into keywords 420, 440and 460, parsed from its concept label, and keywords 420, 440 and 460may make up a concept definition for source concept 410. For instance,in the example elemental data structure 300 of FIG. 2B, the moreelemental concept 255 labeled “Domestic” may be deconstructed from themore complex concept 250 labeled “Domestic Dog” as a keyword parsed fromthe concept label.

In some embodiments, concept definitions including keyword concepts maybe extended through further deconstruction to include morpheme conceptentities in their structure, as a deeper and more fundamental level ofabstraction. In some embodiments, morphemes may represent elemental,irreducible attributes of more complex concepts and their relationships.At the morpheme level of abstraction, many of the attributes would notbe recognizable to human classificationists as concepts. However, whencombined into relational data structures across entire domains,morphemes may in some embodiments be able to carry the semantic meaningof the more complex concepts using less information.

In some embodiments, methods of morpheme extraction may have elements incommon with the methods of keyword extraction discussed above. Patternsmay be defined to use as criteria for identifying morpheme candidates.These patterns may establish the parameters for stemming, and mayinclude patterns for whole word as well as partial word matching. Aswith keyword extraction, the sets of source concept relationships mayprovide the context for morpheme pattern matching. The patterns may beapplied against the pool of keywords within the sets of source conceptrelationships in which the keywords occur. A set of shared roots basedon stemming patterns may be identified. The set of shared roots maycomprise the set of candidate morpheme roots for each keyword.

In some embodiments, the candidate morpheme roots for each keyword maybe compared to ensure that they are mutually consistent. Roots residingwithin the context of the same keyword and the source conceptrelationship sets in which the keyword occurs may be assumed to haveoverlapping roots, further, it may be assumed that the elemental rootsderived from the intersection of those overlapping roots will remainwithin the parameters used to identify valid morphemes. Such validationmay constrain excessive morpheme splitting and provide a contextuallymeaningful yet fundamental level of abstraction. In some embodiments,any inconsistent candidate morpheme roots may be removed from thekeyword sets. The process of pattern matching to identify morphemecandidates may be repeated until all inconsistent candidates areremoved.

In some embodiments, by examining the group of potential roots, one ormore morpheme delineators may be identified for each keyword. Morphemesmay be extracted based on the location of the delineators within eachkeyword label. Keyword concept definitions may then be constructed byrelating (or mapping) the extracted morphemes to the keywords from whichthey were derived. For example, morpheme concepts 425 and 430 may beincluded in the concept definition for keyword concept 420, morphemeconcepts 445 and 450 may be included in the concept definition forkeyword concept 440, and morpheme concepts 465 and 470 may be includedin the concept definition for keyword concept 460. Thus, an originalsource concept 410 may be deconstructed through semantic analysis to thelevel of keyword concepts, and further to the most elemental level ofmorpheme concepts for inclusion in an elemental data structure of anAKRM.

It should be appreciated, however, that any suitable level ofabstraction may be employed in generating an elemental data structure,and any suitable method of analysis may be used, including methods notcentered on keywords or morphemes, as aspects of the present inventionare not limited in this respect. In some embodiments, an elemental datastructure included in an AKRM for use in analysis and/or synthesis ofmore complex KRs may include and encode concepts and relationships thatare more elemental than concepts and relationships included in thecomplex KRs deconstructed to populate the elemental data structureand/or synthesized from the elemental data structure. For example,abstract meanings of complex concepts encoded in a complex KR may beformed by combinations of abstract meanings of elemental conceptsencoded in the elemental data structure of the AKRM.

In some embodiments, concepts stored in an elemental data structure aspart of a centralized AKRM may have been deconstructed from more complexconcepts to the level of single whole words, such as keywords. Theexample of FIG. 2B illustrates such an elemental data structure encodingsingle whole words. In some embodiments, concepts in the elemental datastructure may have been deconstructed to more elemental levelsrepresenting portions of words. In some embodiments, concepts in theelemental data structure may have been deconstructed to a more elementalsemantic level represented by morphemes, the smallest linguistic unitthat can still carry semantic meaning. For example, the whole wordconcept “Siamese” may be deconstructed to create two morpheme concepts,“Siam” and “-ese”, with “Siam” representing a free morpheme and “-ese”representing an affix. In some embodiments, an elemental data structureof an AKRM may include only concepts at a specified level ofelementality; for example, an elemental data structure may in someembodiments be formed completely of morphemes or completely of singleword concepts. In other embodiments, an elemental data structure mayinclude concepts at various different levels of elementality (e.g.,including morpheme concepts, keyword concepts and/or other concepts atother levels of elementality), with at least some of the concepts in theelemental data structure being more elemental than the complex conceptsin input KRs they are deconstructed from and/or the complex concepts inoutput KRs that they create in combination with other elementalconcepts. It should be appreciated that any suitable basis fordeconstructing complex KRs into more elemental data structures may beutilized, including bases tied to paradigms other than linguistics andsemantics, as aspects of the present invention are not limited in thisrespect.

Returning to FIG. 1, data consumer 195 may represent one or more humanusers of system 100 and/or one or more machine-implemented softwareapplications interacting with system 100. In some embodiments, dataconsumer 195 may make requests and/or receive output from system 100through various forms of data. For example, a data consumer 195 mayinput a complex KR 160 to system 100 to be deconstructed to elementalconcepts and concept relationships to generate and/or update elementaldata structure 120. A data consumer 195 (the same or a different dataconsumer) may also receive an output complex KR 190 from system 100,synthesized by application of one or more of the knowledge processingrules 130 to part or all of elemental data structure 120.

In some embodiments of exemplary system 100, a context 180 (or “contextinformation” 180) associated with one or more data consumers 195 isprovided to the synthesis engine 170. Context information may compriseany information that may be used to identify what information the dataconsumers) may be seeking and/or may be interested in. Contextinformation may also comprise information that may be used to develop amodel of the data consumers) that may be subsequently used to providethose data consumers) with information. As such, context information mayinclude, but is not limited to, any suitable information related to thedata consumer(s) that may be collected from any available sources and/orany suitable information directly provided by the data consumers).

In some embodiments, information related to a data consumer may be anysuitable information about the data consumer. For example, informationrelated to a data consumer may comprise demographic information (e.g.,gender, age group, education level, etc.), biographical information,employment information, familial information, relationship information,preference information, interest information, financial information,geo-location information, etc. associated with the data consumer. Asanother example, information related to a data consumer may comprisedetails of the data consumer's Internet browsing history. Suchinformation may comprise a list of one or more websites that the dataconsumer may have browsed, the time of any such browsing, and/or theplace (i.e., geographic location) from where any such browsing occurred.The data consumer's browsing history may further comprise informationthat the data consumer searched for and any associated browsinginformation including, but 3(127347.3 not limited to, the search resultsthe data consumer obtained in response to any such searches. In someembodiments, information related to a data consumer may comprise recordsof hyperlinks selected by a user.

As another example, information related to a data consumer may compriseany information that the data consumer has provided via any userinterface on the data consumer's computing device or on one or morewebsites that the data consumer may have browsed. For instance,information related to a data consumer may comprise any informationassociated with the data consumer on any website such as a socialnetworking website, job posting website, a blog, a discussion thread,etc. Such information may include, but is not limited to, the dataconsumer's profile on the website, any information associated withmultimedia (e.g., images, videos, etc.) corresponding to the dataconsumer's profile, and any other information entered by the dataconsumer on the website, in some embodiments, exemplary system 1800 mayacquire profile information by scraping a website or a social networkingplatform. As yet another example, information related to a data consumermay comprise consumer interaction information as described in U.S.patent application Ser. No. 12/555,293, filed Sep. 8, 2009, and entitled“Synthesizing Messaging Using Content Provided by Consumers,” which ishereby incorporated by reference in its entirety.

In some embodiments, information related to a data consumer may comprisegeo-spatial information. For instance, the geo-spatial information maycomprise the current location of the data consumer and/or a computingdevice of the data consumer (e.g., data consumer's home, library in dataconsumer's hometown, data consumer's work place, a place to which thedata consumer has traveled, and/or the geographical location of the dataconsumer's device as determined by the data consumer's Internet IPaddress, etc.). Geo-spatial information may include an associationbetween information about the location of the data consumer's computingdevice and any content that the data consumer was searching or viewingwhen the data consumer's computing device was at or near that location.In some embodiments, information related to a data consumer may comprisetemporal information. For example, the temporal information may comprisethe time during which a data consumer was querying or viewing specificcontent on a computing device. The time may be specified at any suitablescale such as on the scale of years, seasons, months, weeks, days,hours, minutes, seconds, etc.

Additionally or alternatively, context information associated with oneor more data consumers may comprise information provided by the dataconsumer(s). Such information may be any suitable information indicativeof what information the data consumers) may be interested in. Forexample, context information may comprise one or more search queriesinput by a data consumer into a search engine (e.g., an Internet searchengine, a search engine adapted for searching a particular domain suchas a corporate intranet, etc.). As another example, context informationmay comprise one or more indicators, specified by the data consumer, ofthe type of information the data consumer may be interested in. A dataconsumer may provide the indicators) in any of numerous ways. The dataconsumer may type in or speak an indication of preferences, select oneor more options provided by a website or an application (e.g., select anitem from a dropdown menu, check a box, etc.), highlight or otherwiseselect a portion of the content of interest to the data consumer on awebsite or in an application, and/or in any other suitable manner. Forexample, the data consumer may select one or more options on a websiteto indicate a desire to receive news updates related to a certain topicor topics, advertisements relating to one or more types of product(s),information about updates on any of numerous types of websites,newsletters, e-mail digests, etc.

Context information may be obtained in any of a variety of possibleways. For example, in some embodiments, the context information may beprovided from a data consumer's client computer to one or more servercomputers. That is, for example, a data consumer may operate a clientcomputer that executes an application program. The application programmay send context information (e.g., a search query entered by the dataconsumer into the application program) to a server computer. Thus, theserver may receive context information from the application programexecuting on the client.

The application program may be any of a variety of types of applicationprograms that are capable of, directly or indirectly, sending andreceiving information. For example, in some embodiments, the applicationprogram may be an Internet or WWW browser, an instant messaging client,or any other suitable application.

The context information need not be sent directly from a client to aserver. For example, in some embodiments, the data consumer's searchquery may be sent to a server via a network. The network may be anysuitable type of network such as a LAN, WAN, the Internet, or acombination of networks.

It should also be recognized that receiving context information from adata consumer's client computer is not a limiting aspect of the presentinvention as context information may be obtained in any other suitableway. For example, context information may be obtained, actively byrequesting and/or passively by receiving, from any source with, or withaccess to, context information associated with one or more dataconsumers.

In some embodiments, data consumer 195 may provide a context 180 fordirecting synthesis and/or analysis operations. For example, byinputting a particular context 180 along with a request for an outputKR, data consumer 195 may direct system 100 to generate an output KR 190with appropriate characteristics for the information required or thecurrent task being performed by the data consumer. For example, aparticular context 180 may be input by data consumer 195 as a searchterm mappable to a particular concept about which data consumer 195requires or would like to receive related information. In someembodiments, synthesis engine 170 may, for example, apply rules 130 toonly those portions of elemental data structure 120 that areconceptually related (i.e., connected in the data structure) to theconcept corresponding to the context 180. In another example, an inputcontext 180 may indicate a particular type of knowledge representationmodel with which data consumer 195 would like output KR 190 to conform,such as a taxonomy. Accordingly, embodiments of synthesis engine 170 mayapply only those rules of the set of rules 130 that are appropriate forsynthesizing a taxonomy from elemental data structure 120.

It should be appreciated that input context 180 may include any numberof requests and/or limitations applying to the synthesis of output KR190, and components of input context 180 may be of any suitable typeencoded in any suitable form of data or programming language, as aspectsof the present invention are not limited in this respect. Examples ofsuitable input contexts include, but are not limited to, free textqueries and submissions, e.g., mediated by a natural language processing(NLP) technology, and structural inputs such as sets of terms or tags,consistent with various Web 2.0 systems. In some embodiments, generatingoutput KR 190 in accordance with a particular context 180 may enable amore fluid and dynamic interchange of knowledge with data consumers.However, it should be appreciated that an input context 180 is notrequired, and system 100 may produce output KRs 190 without need ofinput contexts in some embodiments, as aspects of the present inventionare not limited in this respect.

Data consumers 195 may also provide input KRs 160 of any suitable typeto system 100 in any suitable form using any suitable data encodingand/or programming language, as aspects of the present invention are notlimited in this respect. Examples of suitable forms of input KRsinclude, but are not limited to, semi-structured or unstructureddocuments, again used with various forms of NLP and text analytics, andstructured knowledge representations such as taxonomies, controlledvocabularies, faceted classifications and ontologies.

In some embodiments in accordance with the present disclosure, a systemfor analysis and synthesis of complex KRs using an AKRM, such as system100, may be implemented on a server side of a distributed computingsystem with network communication with one or more client devices,machines and/or computers. FIG. 5 illustrates such a distributedcomputing environment 500, in which system 100 may operate as aserver-side transformation engine for KR data structures. Thetransformation engine (e.g., one or more programmed processors) may takeas input one or more source complex KR data structures 520 provided fromone or more domains by a client 510, e.g., through actions of a humanuser or software application of client 510. In some embodiments, theinput complex KR 520 may be encoded into one or more XML files 530 thatmay be distributed via web services (or API or other distributionchannels) over a network such as (or including) the Internet 550 to thecomputing system(s) on which system 100 is implemented. Similarly,system 100 may return requested output KRs to various clients 510through the network as XML files 540. However, it should be appreciatedthat data may be communicated between server system 100 and clientsystems 510 in any suitable way and in any suitable form, as aspects ofthe present invention are not limited in this respect.

Through this and/or other modes of distribution and decentralization, insome embodiments a wide range of developers and/or publishers may usethe analysis engine 150 and synthesis engine 170 to deconstruct andcreate complex KR data structures. Exemplary applications include, butare not limited to, web sites, knowledge bases, e-commerce stores,search services, client software, management information systems,analytics, etc.

In some embodiments, an advantage of such a distributed system may beclear separation of private domain data and shared data used by thesystem to process domains. Data separation may facilitate hostedprocessing models, such as a software-as-a-service (SaaS) model, wherebya third party may offer transformation engine services to domain owners.A domain owner's domain-specific data may be hosted by the SaaS platformsecurely, as it is separable from the shared data (e.g., AKRM data set110) and the private data of other domain owners. Alternately, thedomain-specific data may be hosted by the domain owners, physicallyremoved from the shared data. In some embodiments, domain owners maybuild on the shared knowledge (e.g., the AKRM) of an entire community ofusers, without having to compromise their unique knowledge.

As should be appreciated from the foregoing discussion, some embodimentsin accordance with the present disclosure are directed to techniques ofanalyzing an original complex knowledge representation to deconstructthe complex KR and generate or update an elemental data structure of anatomic knowledge representation model. FIG. 6 illustrates one suchtechnique as exemplary process 600. Process 6(X) begins at act 610, atwhich an input complex KR may be received, for example from a dataconsumer by an analysis/synthesis system such as system 1(X).

At act 620, one or more knowledge processing rules encoded in system 100as part of an AKRM may be applied to deconstruct the input complex KR toone or more elemental concepts and/or one or more elemental conceptrelationships. Examples of knowledge processing rules applicable tovarious types of input KRs are provided below. However, it should beappreciated that aspects of the present invention are not limited to anyparticular examples of knowledge processing rules, and any suitablerules encoded in association with an atomic knowledge representationmodel may be utilized. As discussed above, such rules may be provided atany suitable time by a developer of the analysis system and/or by one ormore end users of the analysis system.

At act 630, one or more of the elemental concepts and/or elementalconcept relationships discovered and/or derived in act 620 may beincluded in an elemental data structure encoded and stored as part ofthe A KRM of the system. In some embodiments, some or all of theelemental concepts and relationships derived from a single input complexKR may be used to populate a new elemental data structure of an AKRM. Insome embodiments, when a stored elemental data structure has alreadybeen populated, new elemental concepts and/or relationships discoveredfrom subsequent input KRs may be included in the stored elemental datastructure to update and/or extend the centralized AKRM. In someembodiments, process 600 may continue to loop back to the beginning tofurther update a stored elemental data structure and/or generate newelemental data structures as new input KRs become available. In otherembodiments, process 600 may end after one pass or another predeterminednumber of passes through the process, after a stored elemental datastructure has reached a predetermined size or complexity, or after anyother suitable stopping criteria are met.

As should be appreciated from the foregoing discussion, some furtherembodiments in accordance with the present disclosure are directed totechniques for generating (synthesizing) complex knowledgerepresentations using an atomic knowledge representation model. FIG. 7illustrates such a technique as exemplary process 700. Process 700begins at act 710, at which an input context may be received, forexample from a data consumer such as a human user or a softwareapplication. As discussed above, such a context may include a textualquery or request, one or more search terms, identification of one ormore active concepts, etc. In addition, the context may indicate arequest for a particular form of complex KR. In some embodiments,however, a request for a complex KR may be received without furthercontext to limit the concepts and/or concept relationships to beincluded in the complex KR, as aspects of the present invention are notlimited in this respect. Furthermore, in some embodiments, receipt of acontext may be interpreted as a request for a complex KR, without needfor an explicit request to accompany the context.

At act 720, in response to the input request and/or context, one or moreappropriate knowledge processing rules encoded in the AKRM may beapplied to the elemental data structure of the AKRM to synthesize one ormore additional concepts and/or concept relationships not explicitlyencoded in the elemental data structure. Examples of knowledgeprocessing rules applicable to synthesizing various types of output KRsare provided below. As discussed above, in some embodiments rules may beapplied bi-directionally to accomplish both analysis and synthesis ofcomplex KRs using the same knowledge processing rules, while in otherembodiments one set of rules may be applied to analysis and a differentset of rules may be applied to synthesis. However, it should beappreciated that aspects of the present invention are not limited to anyparticular examples of knowledge processing rules, and any suitablerules encoded in association with an atomic knowledge representationmodel may be utilized. As discussed above, such rules may be provided atany suitable time by a developer of the analysis system and/or by one ormore end users of the analysis system.

In some embodiments, appropriate rules may be applied to appropriateportions of the elemental data structure in accordance with the receivedinput request and/or context. For example, if the input requestspecifies a particular type of complex KR to be output, in someembodiments only those rules encoded in the AKRM that apply tosynthesizing that type of complex KR may be applied to the elementaldata structure. In some embodiments, if no particular type of complex KRis specified, a default type of complex KR, such as a taxonomy, may besynthesized, or a random type of complex KR may be selected, etc. Insome embodiments, if the input context specifies one or more particularactive concepts of interest, for example, only those portions of theelemental data structure related (i.e., connected through conceptrelationships) to those active concepts may be selected and the rulesapplied to them to synthesize the new complex KR. In some embodiments,some predetermined limit on the size and/or complexity of the outputcomplex KR may be set, e.g., by a developer of the synthesis system orby an end user, for example conditioned on a number of conceptsincluded, hierarchical distance between the active concepts and selectedrelated concepts in the elemental data structure, encoded data size ofthe resulting output complex KR, processing requirements, etc.

At act 730, a new complex KR may be synthesized from the additionalconcepts and relationships synthesized in act 720 and the selectedappropriate portions of the elemental data structure, and encoded inaccordance with any specified type of KR indicated in the receivedinput. At act 740, the resulting synthesized complex KR may be providedto the data consumer from which the request was received. As discussedabove, this may be a software application or a human user who may viewand/or utilize the provided complex KR through a software userinterface, for example. Process 700 may then end with the provision ofthe newly synthesized complex KR encoding new knowledge.

In some embodiments, an “active concept” may be used during synthesis ofa complex KR. In one aspect, an active concept may be an elementalconcept corresponding to at least a portion of the context informationassociated with a data consumer. In some embodiments, an active conceptmay be provided as part of context information. In some embodiments, anactive concept may be extracted from context information.

Extracting an active concept from context information may compriseidentifying a portion of the context information that pertains to asynthesis operation. For example, when a data consumer searches forinformation, a pertinent portion of the context information may comprisea user's search query, and/or additional information that may be helpfulin searching for the information that the data consumer seeks (e.g., thedata consumer's current location, the data consumer's browsing history,etc.). As another example, when presenting a data consumer with one ormore advertisements, a pertinent portion of the context information maycomprise information indicative of one or more products that the dataconsumer may have interest in. As another example, when providing a dataconsumer with news articles (or any other suitable type of content), apertinent portion of the context information may comprise informationindicative of the data consumer's interests. The pertinent portion ofthe context information may be identified in any suitable way as themanner in which the pertinent portion of the context information isidentified is not a limitation of aspects of the present invention. Itshould be also recognized that, in some instances, the pertinent portionof the context information may comprise a subset of the contextinformation, but, in other embodiments, the pertinent portion maycomprise all the context information, as aspects of the presentinvention are not limited in this respect.

The pertinent portion of the context information may be represented inany of numerous ways. For example, in some embodiments, the pertinentportion of context information may be represented via one or morealphanumeric strings. An alphanumeric string may comprise any suitablenumber of characters (including spaces), words, numbers, and/or any ofnumerous other symbols. An alphanumeric string may, for example,represent a user search query and/or any suitable information indicativeof what information the data consumer may be interested in. Though, itshould be recognized that any of numerous other data structures may beused to represent context information and/or any portion thereof.

In some embodiments, an active concept corresponding to the pertinentportion of context information may be identified in an elemental datastructure. Identification of the active concept in the elemental datastructure may be made in any suitable way. In some embodiments, thepertinent portion of the context information may be compared with aconcept identifier. For example, when the pertinent portion of thecontext information is represented by an alphanumeric string, thealphanumeric string may be compared with a string identifying theconcept (sometimes referred to as a “concept label”) to determinewhether or not the strings match. A match may be an exact match betweenthe strings, or a substantially exact match in which all words, with theexception of a particular set of words (e.g., words such as “and,”“the,” “of,” etc.), match. Moreover, in some embodiments, an order ofwords in the strings may be ignored. For instance, it may be determinedthat the siring “The Board of Directors,” matches the concept label“Board Directors” as well as the concept label “Directors Board.”

In some embodiments, if an active concept corresponding to the pertinentportion of context information is not identified in the elemental datastructure, an active concept may be generated. In some embodiments, agenerated active concept may be added to the elemental data structure.

FIG. 11 illustrates an exemplary system 18(X) that may be employed insome embodiments for implementing an atomic knowledge representationmodel (AKRM) involved in analysis and synthesis of complex knowledgerepresentations (KRs), in accordance with some embodiments of thepresent invention. In an exemplary system 1800, analytical components(i.e. components configured to deconstruct or otherwise analyze inputdata, and to store analytical results in an AKRM data set 110), such asanalysis engine 150, may be implemented as software executed on one ormore processors, as hardware, or as a combination of software andhardware. Likewise, synthetical components (i.e. components configuredto synthesize complex knowledge representations from an AKRM data set110), such as synthesis engine 170, may be implemented as softwareexecuted on one or more processors, as hardware, or as a combination ofsoftware and hardware.

In some embodiments, analytical components may be co-located with oneanother (e.g., stored on the same computer-readable medium, or executedon the same processor). In some embodiments, analytical components maybe remotely located from each other (e.g., provided as remote servicesor executed on remotely located computers connected by a network).Likewise, synthetical components may be co-located with each other orremotely located from each other. Analytical and synthetical componentsmay also be referred to as “units” or “engines.”

As described above, in some embodiments an elemental data structure maycomprise elemental concepts and elemental concept relationships. In someembodiments, an elemental concept relationship may be unidirectional andmay describe a relationship between two elemental concepts. That is, anelemental concept relationship may denote that elemental concept A has aparticular relationship to elemental concept B, without denoting thatelemental concept B has the same relationship to elemental concept A. Insome embodiments, an elemental concept relationship may be assigned atype, such as a subsumptive type or a definitional type.

A subsumptive relationship may exist between two concepts when one ofthe concepts is a type, field, or class of the other concept. Forexample, a subsumptive relationship may exist between the concepts“biology” and “science” because biology is a field of science. Thenotation A→B may denote a subsumptive relationship between concepts Aand B. More precisely, the notation A→B may denote that concept Bsubsumes concept A, or (equivalently), that concept A is a type ofconcept B. A subsumptive relationship may also be referred to as a‘subsumption’ relationship, an ‘is-a’ relationship, or a ‘hyponymy.’

A definitional relationship may exist between two concepts when one ofthe concepts may define the other concept, at least in part. Forexample, a definitional relationship may exist between the concepts“apple” and “skin” because an apple may have a skin. As another example,a definitional relationship may exist between the concepts “apple” and“round” because an apple may be round. The notation A-•B may denote adefinitional relationship between concepts A and B. More precisely, thenotation A-•B may denote that concept B defines concept A, or(equivalently), that concept A is defined by concept B. A definitionalrelationship may also be referred to as a “defined-by’ relationship.

In some embodiments, a definitional relationship may exist only betweena concept and constituents of that concept. For example, in someembodiments, a definitional relationship may exist between the concept“apple pie” and the concept “apple” or the concept “pie,” because theconcepts “apple” and “pie” are constituents of the concept “apple pie.”In some embodiments, concept X may be a constituent of concept Y only ifa label associated with concept Y comprises a label associated withconcept X.

In some embodiments, AKRM data set 110 may encode a probabilistic modelof elemental data structure 110. For example, in some embodiments, theprobabilistic model may associate probabilities with the relationships(e.g., edges) of elemental data structure 110. A probability associatedwith a relationship between two concepts may represent a probablerelevance of the two concepts to each other (e.g., a probability thatthe two concepts are related by the type of relationship with which theprobability is associated. Techniques for probabilistically modeling aknowledge representation are known to one of ordinary skill in the art,as shown, for example, in U.S. Patent Application Publication No.2012/0166371 A1, titled “Knowledge Representation Systems and MethodsIncorporating Data Consumer Models and Preferences,” published on Jun.28, 2012, which is hereby incorporated by reference in its entirety.

Software embodiments of the above-described methods are known to one ofordinary skill in the art, as shown, for example, in the pseudocodeexamples contained in U.S. Patent Application Publication No.2012/0166371 A1.

II. Probabilistic Analytical Processing

A user of a knowledge representation (KR), such as an elemental datastructure, may wish to ascertain information about concepts and/orrelationships in the KR, such as a relevance of one concept in the KR toanother concept in the KR, or a relevance of a concept in the KR to aconcept in which the user has expressed interest. For example, anindividual may be interested in information regarding leading goalscorers in the history of international soccer. The individual maysubmit a query, such as “all-time leading goal scorers,” to a KR systemcontaining information about soccer. Based on the query, a KR system mayidentify or generate an active concept in the KR that is relevant to thequery. The KR system may then identify additional concepts in the KRthat are relevant to the active concept. Because the number of conceptsrelevant to the active concept may be very high, the KR system may seekto distinguish more relevant concepts from less relevant concepts, andreturn to the user information related to a certain number of the morerelevant concepts.

In some embodiments, a KR system, such as exemplary KR system 1800 ofFIG. 11, may model a KR as a graph (or network) and use variousparameters associated with the graph to estimate a relevance of oneconcept to another concept. In some embodiments, the nodes of the graphmay correspond to the concepts of the KR, and the edges of the graph maycorrespond to the relationships among the concepts. In some embodiments,the graph may be directed. Though, in some embodiments, some or all ofthe edges may be undirected. In some embodiments, system 1800 mayestimate a relevance of a first concept to a second concept as ashortest path length, an average path length, or a number of paths fromthe first concept to the second concept. In some embodiments, system1800 may estimate a relevance of a first concept to a second concept asa function of the shortest path length, average path length, and/ornumber of paths. Though, embodiments of system 1800 are not limited inthis regard. System 1800 may estimate a relevance of a first concept toa second concept using any flow algorithm, routing algorithm, or otherappropriate graph algorithm as is known in the art or otherwise suitablefor assessing a relationship between two nodes in a graph.

However, in some cases, the above-mentioned techniques may notaccurately discriminate among concepts that are more relevant to anactive concept and concepts that are less relevant to the activeconcept, because the above-mentioned techniques for estimating relevancemay fail to account for uncertainties associated with the concepts andrelationships in the KR. In some cases, a conventional KR system mayfail to account for such uncertainties because conventional techniquesfor constructing a KR, such as manual KR construction techniques, mayfail to identify or quantify such uncertainties. For example,conventional techniques may simply determine that a first concept is oris not relevant to a second concept, rather than estimating a strengthof the first concept's relevance to the second concept. As anotherexample, conventional techniques may simply determine that two conceptsare related, rather than estimating a probability that the relationshipexists.

FIG. 12A illustrates an exemplary system 1900 that may be employed insome embodiments for implementing an atomic knowledge representationmodel (AKRM) involved in analysis and synthesis of complex knowledgerepresentations (KRs), in accordance with some embodiments of thepresent invention. In some embodiments, statistical engine 1902 mayestimate probabilities associated with elemental concepts and/orelemental concept relationships in an elemental data structure 1906. Insome embodiments, statistical engine 1902 may model elemental datastructure 1906 as a statistical graph, with the nodes and edges of thestatistical graphical model corresponding to the elemental concepts andelemental concept relationships, respectively, of the elemental datastructure 1906. In some embodiments, a probability associated with anelemental component of elemental data structure 1906 may be assigned tothe corresponding graphical component (i.e. node or edge) of thestatistical graphical model. In some embodiments, statistical engine1902 may apply statistical inference techniques to the graphical modelto estimate the relevance of a first elemental concept of the elementaldata structure 1906 to a second elemental concept of the elemental datastructure 1906, and/or to estimate a relevance of an elemental conceptof the elemental data structure 1906 to a data consumer 195, contextinformation 180, or an active concept. In some embodiments, exemplarysystem 1900 may use these estimates to distinguish concepts that aremore relevant to a data consumer 195, context information 180, or anactive concept, from concepts that less relevant thereto.

In some embodiments, a probability associated with an elementalcomponent may represent an estimate of a relevance of the elementalcomponent. In some embodiments, a probability associated with anelemental concept relationship between first and second elementalconcepts may represent an estimate of a relevance of the first elementalconcept to the second elemental concept, and/or a relevance of thesecond elemental concept to the first elemental concept. In someembodiments, a probability associated with an elemental concept mayrepresent an estimate of a relevance of the elemental concept to a dataconsumer 195, context information 180 associated with the data consumer195, and/or an active concept extracted from context information 180. Insome embodiments, a probability associated with a concept may representa frequency with which the concept's label appears in reference data1904. In some embodiments, the probability associated with a concept mayrepresent an importance of the concept, which may be assigned by a dataconsumer 195 or determined by statistical engine 1902 based on referencedata 1904.

In some embodiments, statistical engine 1902 may estimate a relevance ofan elemental concept relationship between a first elemental concept anda second elemental concept by calculating a frequency of occurrence inreference data 1904 of a label associated with the first concept and/ora label associated with the second concept. In some embodiments, thecalculated frequency may be a term frequency, a term-document frequency,or an inverse document frequency. For example, statistical engine 1902may estimate a probability associated with a relationship between firstand second concepts by calculating a percentage of documents inreference data 1904 that contain first and second labels associated withthe first and second concepts, respectively. Methods of calculating termfrequency, term-document frequency, and inverse document frequency aredescribed in the Appendix, below. In some embodiments, a search enginemay be used to determine a frequency of occurrence of a symbol or labelassociated with a concept in external data 1904. In some embodiments,the term-document frequency of a concept may correspond to a number ofsearch engine hits associated with the concept's label. Additionally oralternatively, embodiments of statistical engine 1902 may estimate arelevance of an elemental concept relationship using techniques known inthe art or any other suitable techniques.

In some embodiments, statistical engine 1902 may estimate a relevance ofa concept to a data consumer 195 or to context information 180 bycalculating a frequency of occurrence in reference data 1904 of a labelassociated with the concept and/or a label associated with an activeconcept. In some embodiments, an active concept may be provided by dataconsumer 195 as part of context information 180. In some embodiments, anactive concept may be extracted from context information 180 usingtechniques known in the art or any other suitable techniques. Forexample, an active concept may be extracted using techniques disclosedin U.S. patent application Ser. No. 13/162,069, titled “Methods andApparatus for Providing Information of Interest to One or More Users,”filed Dec. 30, 2011, and incorporated herein by reference in itsentirety. In some embodiments, an active concept may be extracted from adata consumer model associated with data consumer 195.

In some embodiments, a statistical engine 1902 may estimate that aconcept is either relevant (e.g., the estimate relevance is 1) orirrelevant (e.g., the estimated relevance is 0) to a data consumer 195.In some embodiments, treating concepts as relevant or irrelevant to adata consumer 195 may facilitate construction of user-specific elementaldata structures, by allowing exemplary system 1900 to identify conceptsin which the data consumer has little or no interest and prune suchconcepts from the user-specific elemental data structure.

In some embodiments of exemplary system 1900, statistical engine 1902may apply statistical inference techniques to compute a jointprobability distribution of two or more nodes in a statistical graphicalmodel associated with elemental data structure 1906. In someembodiments, the statistical inference techniques may account for apriori assumptions about relationships among concepts. For instance, itmay be known that certain concepts are not related, or it may be knownthat some concepts are strongly related. In some embodiments, exemplarysystem 1900 may use the joint probability distribution of two or morenodes in the statistical graphical model to answer queries aboutrelationships among concepts in elemental data structure 1906, or tosynthesize an output KR 190 associated with context information 180. Insome embodiments, statistical engine 1902 may estimate an extent towhich two concepts are related, semantically coherent, or relevant toone another by computing appropriate marginal posterior probabilitiesassociated with the statistical graphical model. The statisticalinference techniques applied by statistical engine 1902 may betechniques known in the art or any other suitable techniques.

In some embodiments of exemplary system 1902, reference data 1904 mayinclude knowledge representations such as documents and unstructuredtext, as well as non-text data sources such as images and sounds. Insome embodiments, a document in reference data 1904 may comprise aphrase, a sentence, a plurality of sentences, a paragraph, and/or aplurality of paragraphs. Reference data 1904 may include a corpus orcorpora of such knowledge representations. In some embodiments,reference data 1904 differs from input KRs 160 deconstructed by analysisunit 150.

FIG. 12A illustrates an exemplary system 1900 in which acomputer-readable data structure storing data associated with elementaldata structure 1906 may also store data associated with a statisticalgraphical model associated with elemental data structure 1906. Forexample, elemental data structure 1906 may be represented as a graph,with elemental concepts and elemental concept relationships encoded asnode data structures and edge data structures, respectively. In someembodiments, the node and edge data structures associated with elementaldata structure 1906 may also be associated with the statisticalgraphical model. In some embodiments, a relevance associated with anelemental component of elemental data structure 1906 may also be storedin a node or edge data structure. In other words, in some embodiments,the encoding of the statistical graphical model may simply be theencoding of elemental data structure 1906, or a portion thereof.

By contrast, FIG. 12B illustrates an exemplary system 1900 in which atleast a portion of statistical graphical model 1908 is encodedseparately from an encoding of elemental data structure 120. In someembodiments, elemental data structure 120 may be represented as a graph,with concepts and relationships encoded as node and edge datastructures, respectively. Though, in some embodiments, elemental datastructure 120 may be represented as a table, with concepts andrelationships encoded as entries in the table. Embodiments of exemplarysystem 1900 are not limited in this regard. In some embodiments, arelevance associated with an elemental component of elemental datastructure 120 may be encoded as a probability in a distinct datastructure associated with statistical graphical model 1908.

In some embodiments, statistical graphical model 1908 comprise nodes andedges corresponding to concepts and relationships of elemental datastructure 120. In some embodiments, statistical graphical model 1908 mayfurther comprise nodes and/or edges that do not correspond to conceptsand relationships of elemental data structure 120. Accordingly, in someembodiments, statistical graphical model 1908 may be encoded as a graphdata structure. The graph data structure may comprise data associatedwith nodes and edges of the statistical graphical model 1908. In someembodiments, the encoded data may include data corresponding to conceptsand relationships of elemental data structure 120. In some embodiments,the encoded data may further comprise data corresponding to otherconcepts and/or relationships. In some embodiments, the encoded data mayinclude probabilities corresponding to relevance values associated withthe nodes and edges of the statistical graphical model 1908.

In some embodiments, statistical engine 1902 may modify elemental datastructure 120 based on probabilities associated with statisticalgraphical model 1908. For example, if statistical graphical model 1908contains an edge between two nodes corresponding to two concepts inelemental data structure 120, and a probability assigned to the edgeexceeds a first relationship threshold, statistical engine 1902 may adda relationship corresponding to the edge to elemental data structure120, and assign a relevance to the relationship that corresponds to theedge's probability. Likewise, if statistical graphical model 1908contains an edge, and a probability assigned to the edge is less than asecond relationship threshold, statistical engine 1902 may remove arelationship corresponding to the edge from elemental data structure120.

In some embodiments, if the probability associated with a node of thestatistical graphical model 1908 exceeds a first concept threshold,statistical engine 1902 may add a concept corresponding to the node toelemental data structure 120, and assign the concept a relevance thatcorresponds to the node's probability. Likewise, if statisticalgraphical model contains a node, and a probability assigned to the nodeis less than a second concept threshold, statistic engine 1902 mayremove a concept corresponding to the node from elemental data structure120.

FIG. 9 illustrates limitations of a conventional KR through an exampleof a KR constructed in accordance with conventional KR constructiontechniques and represented as a graph. The graph of FIG. 9 comprises aset of vertices representing concepts such as “house,” “fire truck,” and“alarm,” and a set of edges representing relationships between concepts,such as the subsumptive relationship between the concepts “fire truck”and “truck.” Because the graph of FIG. 9 fails to account foruncertainties associated with the concepts and relationships in the KR,a user of the graph may have difficulty determining, for example,whether the concept “phone” or the concept “alarm” is more relevant tothe concept “house.”

FIG. 10 depicts an illustrative statistical graphical model associatedwith a KR. The nodes of the model correspond to the concepts shown inthe graph of FIG. 9. The illustrated model comprises a directed graph,wherein bidirectional edges are shown using a line with arrows on eachend. A probability is associated with each node and with each edge. Inorder to determine a relevance of the concept “fire-truck” to theconcept “alarm,” statistical engine 1902 may apply statistical inferencetechniques to the graphical model of FIG. 10. Suitable statisticalinference techniques are described in the Appendix.

In some embodiments, the statistical graphical model of exemplary system1900 may comprise a semantic network associated with an elemental datastructure, with the nodes and edges of the semantic networkcorresponding to the concepts and relationships of the elemental datastructure. In some embodiments, statistical engine 1902 may use thesemantic network to check a semantic coherence associated with theelemental data structure. In some embodiments, checking a semanticcoherence of an elemental data structure may comprise calculating asemantic coherence of two or more concepts in the elemental datastructure. In some embodiments, calculating a semantic coherence of twoor more concepts in the elemental data structure may comprise using theprobabilities associated with the nodes of the statistical graphicalmodel to compute joint probabilities associated with the nodescorresponding to the two or more concepts.

FIG. 29 depicts an exemplary method of modifying an elemental datastructure to account for uncertainty associated with components of theelemental data structure. At act 3602 of the exemplary method, arelevance associated with an elemental component may be estimated. Inact 3602, estimating the relevance associated with the elementalcomponent comprises estimating a frequency of occurrence in referencedata of one or more labels associated with the elemental component.

In some embodiments, the relevance estimated at act 3602 may be arelevance of a first elemental concept to a second elemental concept. Insome embodiments, if the first and second elemental concepts areincluded in the elemental data structure, the relevance may beassociated with a relationship between the two concepts. In someembodiments, if the first elemental concept is included in the elementaldata structure and the second elemental concept is not, the relevancemay be associated with the first elemental concept. In some embodiments,the relevance may be a relevance of a first elemental concept of theelemental data structure to a data consumer, context information, a dataconsumer model, or an active concept.

In some embodiments, the a frequency of occurrence in reference data ofone or more labels associated with the elemental component may be a termfrequency, a term-document frequency, and/or an inverse documentfrequency. In some embodiments, estimating a frequency of occurrence oflabel(s) associated with the elemental component may comprise using asearch engine to identify documents containing the label(s).

At act 3604 of the exemplary method, the elemental data structure may bemodified to store the computed relevance in data associated with theelemental component. Though, in some embodiments, a probabilitycorresponding to the relevance may be stored in data associated with anode of a statistical graphical model corresponding to the elementaldata structure.

FIG. 30 depicts an exemplary method of modifying a graphical modelassociated with an elemental data structure to store probabilitiesassociated with components of the elemental data structure. At act 3702of the exemplary method, a graphical model associated with the elementaldata structure may be obtained. In some embodiments, the graphical modelmay be created with nodes and edges corresponding to the concepts andrelationships of the elemental data structure, respectively. In someembodiments, the data associated with a node may include a probabilitycorresponding to semantic coherence of the corresponding concept. Insome embodiments, the data associated with an edge may include aprobability corresponding to a semantic coherence of the correspondingrelationship.

At act 3704 of the exemplary method, a semantic coherence of anelemental component may be estimated. In some embodiments, the elementalcomponent may be contained in the elemental data structure. Though, insome embodiments, the elemental component may not be part of theelemental data structure. In some embodiments, the semantic coherence ofan elemental component may be estimated by calculating a frequency ofoccurrence in reference data of one or more labels associated with theelemental component. In some embodiments, the calculated frequency maybe a term frequency, term-document frequency, and/or inverse documentfrequency. In some embodiments the semantic coherence of two or moreelemental components may be estimated by calculating a joint probabilityof the graphical components (nodes and/or edges) corresponding to thetwo or more elemental components.

At act 3706 of the exemplary method, the graphical model may be modifiedby assigning a probability corresponding to the semantic coherence ofthe elemental component to a graphical component of the graphical model.In some embodiments, the graphical component may not correspond to anyelemental component in the elemental data structure. In someembodiments, such a graphical component may be used to determine asemantic coherence of a candidate concept or relationship. If thesemantic coherence of a candidate concept exceeds a first thresholdsemantic coherence, the candidate concept may be added to the elementaldata structure. If the semantic coherence of a candidate relationshipexceeds a second threshold semantic coherence, the candidaterelationship may be added to the elemental data structure. Likewise, ifthe semantic coherence associated with a component of an elemental datastructure is less than a threshold semantic coherence, the component maybe removed from the elemental data structure.

The above-described techniques may be implemented in any of a variety ofways. In some embodiments, the techniques described above may beimplemented in software. For example, a computer or other device havingat least one processor and at least one tangible memory may store andexecute software instructions to perform the above-described techniques.In this respect, computer-executable instructions that, when executed bythe at least one processor, perform the above described techniques maybe stored on at least one non-transitory tangible computer-readablemedium.

III. Analytical Processing of User Models

FIG. 13 illustrates an exemplary system 2000 that may be employed insome embodiments for implementing an atomic knowledge representationmodel (AKRM) involved in analysis and synthesis of complex knowledgerepresentations (KRs), in accordance with some embodiments of thepresent invention. In some embodiments, exemplary system 2000 mayimplement a complex-adaptive feedback loop through a feedback engine2002. In some embodiments, the feedback loop may facilitate maintenanceand quality improvements of one or more elemental data structures 120 inAKRM data set 110. In some embodiments, the feedback loop may facilitatedisambiguation (i.e. detection and resolution of ambiguities in anAKRM), crowd sourcing (i.e. analyzing data associated with a populationand modifying an AKRM to include new concepts and/or relationshipsassociated with a threshold portion of the population), and/or tailoring(i.e. analyzing user-specific data and maintaining different elementaldata structures for different users).

In an exemplary system 2000, analytical components 1802 may include afeedback engine 2002. Feedback engine 2002 may receive, as input, dataconsumer models 2004. Feedback engine 2002 may provide, as output,selected data consumer models 2004, or portions thereof. Analysis engine150 may receive, as input, the selected data consumer models 2004, orportions thereof, provided by feedback engine 2002.

In some embodiments, data associated with a data consumer model 2004 maybe encoded using the exemplary data schema 350 of FIG. 3, or any othersuitable data structure. The data structure corresponding to a dataconsumer model 2004 may be stored on a computer-readable medium.

In some embodiments, a data consumer model 2004 (or “user model” 2004)may comprise data acquired from one or more information sources. Forexample, a user model 2004 may comprise one or more output KRs 190provided by synthesis engine 170. In some embodiments, a user model 2004may comprise data derived from an interaction of a data consumer 195with an output KR 190. Exemplary interactions of a data consumer 195with an output KR 190 may include selection, highlighting, orspecification by a data consumer 195 of one or more output KRs 190 froma plurality of output KRs presented by synthesis engine 170, orselection, highlighting, or specification by the data consumer 195 of aparticular aspect or portion of an output KR 190. Though, a user model2004 may comprise data derived from any interaction of a data consumer195 with an output KR 190. Embodiments of exemplary system 2000 are notlimited in this respect. As discussed below, analysis of data derivedfrom an interaction of a data consumer 195 with an output KR 190 mayallow embodiments of analytical components 1802 to resolve ambiguitiesin an AKRM.

In some embodiments, a user model 2004 may comprise context information180 or data associated with context information 180. As discussed above,context information 180 may include a textual query or request, one ormore search terms, identification of one or more active concepts, etc.As discussed below, analysis of data associated with context information180 may allow embodiments of analytical components 1802 to tailorelemental data structures to users or groups of users.

In some embodiments, a data consumer model 2004 may correspond to a dataconsumer 195. In some embodiments, a data consumer model 2004corresponding to a data consumer 195 may persist for the duration of thedata consumer's session with exemplary system 2000. Some embodiments ofa data consumer model 2004 may persist across multiple sessions. Asession may begin when a data consumer logs in or connects to exemplarysystem 2000, and may end when a data consumer logs out or disconnectsfrom exemplary system 2000. Though, the scope of a session may bedetermined using conventional techniques or any suitable techniques.Embodiments are not limited in this respect.

In some embodiments, by feeding back user models 2004 to analyticalcomponents 1802, exemplary system 2000 may cause analytical components1802 to modify an elemental data structure 120 based on data containedin a user model 2004. Such modifications may include adding an elementalconcept to the elemental data structure, removing an elemental concept,resolving two or more elemental concepts into a single elementalconcept, splitting an elemental concept into two or more elementalconcepts, adding an elemental concept relationship between two elementalconcepts, and/or removing an elemental concept relationship. Further, alevel to which the analytical components 1802 deconstruct an elementaldata structure may depend on concepts and/or relationships contained ina user model 2004. In some embodiments, a level to which the analyticalcomponents 1802 deconstruct an elemental data structure 120 may comprisean intra-word level or an inter-word level, such as with phrases andlarger language fragments.

In one aspect, analytical components 1802 may resolve ambiguities in anelemental data structure 120 based on data contained in a user model2004. In some embodiments, analytical components 1802 may resolveambiguities in an elemental data structure 120 based on data containedin context information 180. For example, a user model 2004 may containcontext information 180 including query data or active concepts that adata consumer 195 supplied to synthetical components 1852. The usermodel 2004 may further contain data indicating that, in response to thequery data or active concepts, the synthetical components 1852 providedmultiple output KRs 190 to the data consumer. The user model 2004 mayfurther contain data indicating that the data consumer 195 selected oneof output KRs. Based on this data, analytical components 1802 mayascertain one or more relationships between concepts associated withcontext information 180 and concepts associated with the selected outputKR 190, and may add these one or more relationships to an elemental datastructure 120. The addition of these one or more relationships mayresolve ambiguities in the elemental data structure 120, therebyincreasing the relevance of output KRs synthesized by syntheticalcomponents 1852 in response to user-supplied context information 180.

In a second aspect, exemplary system 2000 may use a feedback loop totailor an elemental data structure to a particular data consumer orgroup of data consumers 195. In some embodiments, analytical components1802 may perform tailoring by modifying a user-specific elemental datastructure based on data contained in a corresponding user model 2004. Insome embodiments, synthetical components 1852 may rely on user-specificelemental data structures to synthesize output KRs that are particularlyrelevant to the data consumer 195 associated with context information180.

For example, a first user model 2004 corresponding to a first dataconsumer 195 may include data associated with baseball. Based on firstuser model 2004, analytical components 1802 may modify a firstuser-specific elemental data structure 120 corresponding to first dataconsumer 195 to include concepts and relationships associated withbaseball. When first data consumer 195 provides a concept “bat” as partof context information 180, synthetical components 1852 may provide anoutput KR that is relevant to baseball bats, rather than an output KRthat is relevant to (for example) winged bats.

Continuing the example, a second user model 2004 corresponding to asecond data consumer 195 may include data associated with nature. Basedon second user model 2004, analytical components 1802 may modify asecond user-specific elemental data structure 120 corresponding to asecond data consumer 195 to include concepts and relationshipsassociated with nature. When second data consumer 195 provides a concept“bat” as part of context information 180, synthetical components 1852may provide an output KR that is relevant to winged bats, rather than anoutput KR that is relevant to (for example) baseball bats.

In some embodiments, a user-specific elemental data structure may be anelemental data structure 120 constructed using at least one user model2004 that corresponds to a particular data consumer or group of dataconsumers 195. In some embodiments, a user-specific elemental datastructure may be encoded independent of any other elemental datastructure 120, or may be encoded as one or more modifications to anotherelemental data structure 120.

In a third aspect, analytical components 1802 may crowd-source anelemental data structure 120. Crowd-sourcing may refer to a process ofascertaining information by relying on data associated with a population(the crowd) to verify, discredit, or discover information. In someembodiments, analytical components 1802 may perform processing, such asmathematical or statistical processing, on user models 2004 to estimatea prevalence of a concept or a relationship in a population. In someembodiments, the population may comprise all data consumers. In someembodiments, the population may comprise a group of data consumers, suchas a group of data consumers having a common interest or attribute. Insome embodiments, a subset of the user models 2004 may be fed back fromthe synthetical components 1852, the subset representing a statisticalsample of the population. Upon identifying a concept or relationshipassociated with a threshold portion of a population, embodiments ofanalytical components 1802 may modify an elemental data structure 120 toinclude the concept or relationship. In some embodiments, acrowd-sourced elemental data structure may contain an aggregation ofconcepts and relationships that is associated with the crowdcollectively, even if the aggregation of concepts and relationships isnot associated with an individual member of the crowd.

In some embodiments, the processing performed by the analyticalcomponents 1802 may comprise calculating a portion (e.g., a number or apercentage) of user models 2004 that contain a concept or relationship.In some embodiments, the processing performed by the feedback engine2002 may comprise estimating a portion (e.g., a number or a percentage)of population members associated with the concept or relationship. Insome embodiments, if the calculated or estimated portion exceeds athreshold, the feedback engine 2002 may provide a knowledgerepresentation containing the concept or relationship to the analysisengine 150. The threshold may be fixed or configurable.

For example, if a threshold portion of user models contain evidence of afirst relationship between a concept “bat” and a concept “baseball,” thefeedback engine 2002 may provide a knowledge representation containing arelationship between the concept “bat” and the concept “baseball” toanalysis engine 150, and the analysis engine may apply knowledgeprocessing rules 130 to modify an elemental data structure 120 toinclude the first relationship.

If the elemental data structure already contains the concepts “baseball”and “bat,” but does not contain a relationship between the concepts,modifying the elemental data structure to include the first relationshipbetween “bat” and “baseball” may comprise adding the first relationshipto the elemental data structure. FIG. 19 illustrates such a scenario. InFIG. 19, a relationship 2650 is added to an elemental data structure2600. The relationship 2650 relates two concepts, baseball 2612 and bat2624, which were already present in elemental data structure 2600.

If the elemental data structure contains the concept “baseball” but notthe concept “bat,” modifying the elemental data structure to include thefirst relationship between “bat” and “baseball” may comprise adding theconcept “bat” and the first relationship to the elemental datastructure. FIG. 20 illustrates such a scenario. In FIG. 20, a concept“bat” 2724 and a relationship 2750 are added to an elemental datastructure 2700. The relationship 2750 relates the new concept, “bat”2724, to the pre-existing concept “baseball” 2612.

In some embodiments, application of knowledge processing rules 130 byanalysis engine 150 to a crowd-sourced knowledge representation mayresult in merging a first concept and a second concept (i.e. resolvingthe two concepts into a single concept). The first and second conceptsmay be associated with first and second labels. In some embodiments, thefirst and second labels may be identical. In some embodiments, therelationships associated with the single concept (after the mergeoperation) may comprise the union of the relationships associated withthe first and second concepts (prior to the merge operation). Forexample, an elemental data structure 120 may contain a first concept“bat” related to a concept “wood” and a second concept “bat” related toa concept “swing.” The first and second concepts may be merged into asingle concept “bat” that is related to both “wood” and “swing.”

FIGS. 21A and 21B illustrate an example of resolving a first concept“bat” 2822 and a second concept “bat” 2824 into a merged concept “bat”2924. In FIG. 21 A, an exemplary elemental data structure 2800 includesa concept “baseball” 2612 that is related to a first concept “bat” 2822and a second concept “bat” 2824. The first concept “bat” 2822 is alsorelated to a concept “wood” 2832, and the second concept “bat” 2824 isalso related to a concept “swing” 2834. FIG. 21B illustrates theexemplary elemental data structure 2800 after the two “bat” conceptshave been resolved into a merged concept, “bat” 2924. In FIG. 21B, themerged concept “bat” 2924 is related to the concepts “baseball” 2612,“wood” 2832, and “swing” 2834.

Such a concept resolution operation may, according to some approaches,occur in response to data provided by feedback engine 2002, such as dataconsumer model 2004. Continuing the example of FIGS. 21A and 21B, a dataconsumer model 2004 may include the three concepts “bat”, “swing” and“wood.” Such concepts may be constituents of other concepts, such as ina situation where data consumer model 2004 includes the concepts “woodbat” and “swing”. Alternatively, each of these three concepts mayindependently co-occur in data consumer model 2004. The co-occurrence ofthese three concepts in data consumer model 2004 may suggest that theconcept “bat” 2822 as it pertains to “swing” 2834, and the concept “bat”2824 as it pertains to “wood” 2832, may be represented as one entity“bat” 2924.

According to some aspects, feedback engine 2002 may initiate suchconcept resolution when a threshold number of distinct data consumermodels 2004 provide evidence that two concepts may be represented as asingle concept. In yet other aspects, concept resolution may occur in auser-specific elemental data structure. For example, the merged conceptmay be stored in a user-specific elemental data structure associatedwith data consumers 195 who provided evidence that the two conceptscould be represented as a single concept.

FIG. 17 depicts an exemplary method of modifying an elemental datastructure based on feedback. At act 2402 of the exemplary method, one ormore data consumer models (user models) are fed back from an output of aknowledge representation system to an input of a knowledgerepresentation system. In some embodiments, the user models maycorrespond to one or more data consumers 195 associated with theknowledge representation system. In some embodiments, feeding back theuser models may comprise sending the user models to analyticalcomponents 1802 of the knowledge representation system. In someembodiments, analytical components may include an analysis engine 150and/or a feedback engine 2002. In some embodiments, feeding back theuser models may comprise sending the user models directly to analysisengine 150. In some embodiments, feeding back the user models maycomprise sending the user models to a feedback engine 2002 (i.e.supplying the user models to feedback engine 2002 as input to theengine). In some embodiments, feedback engine 2002 may send at least aportion of the user models to analysis engine 150 (i.e. supplying theuser models to analysis engine 150 as input to the engine). In someembodiments, the portion may comprise a part of a user model.

At act 2404 of the exemplary method, knowledge processing rules areapplied to the user models (or portions of user models) fed back by theknowledge representation system. In some embodiments, the applied rulesmay be knowledge processing rules 130. In some embodiments, the sameknowledge processing rules that are applied to input KRs 160 may beapplied to the user models. In some embodiments, knowledge processingrules that are not applied to input KRs may be applied to the usermodels. By applying knowledge processing rules to the user models,analytical components 1802 may deconstruct the user models intoelemental components. In some embodiments, an elemental component maycomprise an elemental concept and/or an elemental concept relationship.

At act 2406 of the exemplary method, an elemental data structure 120 maybe altered to include a representation of an elemental componentprovided by analysis engine 150. Such alterations may include adding anelemental concept to the elemental data structure, removing an elementalconcept, resolving two or more elemental concepts into a singleelemental concept, splitting an elemental concept into two or moreelemental concepts, adding an elemental concept relationship between twoelemental concepts, and/or removing an elemental concept relationship.

FIG. 18 depicts an exemplary method of crowd-sourcing an elemental datastructure. See above for descriptions of embodiments of acts 2402, 2404,and 2406. At act 2512 of the exemplary method, analytical components1802 may estimate what portion of a population is associated with theelemental component provided during act 2404. In some embodiments, thepopulation may be data consumers 195, and the user models 2004 fed backfrom the synthetical components 1852 may comprise a statistical sampleof the user models 2004 associated with data consumers 195. In someembodiments, the population may be a group of data consumers 195 sharingan attribute or interest, and the user models 2004 fed back from thesynthetical components 1852 may comprise a statistical sample of theuser models 2004 associated with the group of data consumers 195.

At act 2514 of the exemplary method, analytical components 1802 maydetermine whether the estimated portion of the population associatedwith (he elemental component exceeds a crowd-sourcing threshold. In someembodiments, the portion may be expressed as a percentage of dataconsumers 195. In some embodiments, the portion may be expressed as aquantity of data consumers 195.

At act 2406 of the exemplary method of FIG. 18, the elemental datastructure 120 is altered to include data associated with the elementalcomponent, because the portion of the population associated with theelemental component exceeds the crowd-sourcing threshold. At act 2516 ofthe exemplary method, the elemental data structure 120 is not altered toinclude data associated with the elemental component, because (heportion of the population associated with the elemental component doesnot exceed the crowd-sourcing threshold.

FIG. 22 depicts an exemplary method of tailoring an elemental datastructure. At act 2902 of the exemplary method, a data consumer model isfed back from an output of a knowledge representation system to an inputof a knowledge representation system. In some embodiments, the dataconsumer model is associated with a data consumer. At act 2904 of theexemplary method, knowledge processing rules are applied to deconstructthe data consumer model into elemental components.

At act 2906 of the exemplary method, an elemental data structureassociated with the data consumer is selected. In some embodiments, AKRMdata set 110 may comprise a plurality of elemental data structures. Insome embodiments, some elemental data structures may be associated withall data consumers. In some embodiments, some elemental data structuresmay be associated with groups of data consumers. In some embodiments,some elemental data structures may be associated with individual dataconsumers. Associations between elemental data structures and dataconsumers or groups of data consumers may be (racked using techniquesknown in the art or any other suitable techniques. Likewise, selectionof an elemental data structure associated with a data consumer may beimplemented using techniques known in the art or any other suitabletechniques. Embodiments are not limited in this regard.

At act 2908 of the exemplary method, the selected elemental datastructure may be altered to include data associated with elementalcomponent provided at act 2904.

IV. Inferential Analytical Processing

Some concepts and relationships may be omitted from or under-representedin manually created knowledge representations (KRs). For example, amanually created KR relating to biology may not expressly indicate anyrelationship between the concept “biology” and the concept “science,”even though biology is a field of science. Such a relationship may beomitted, for example, because an individual who manually creates the KRmay consider such a relationship to be self-evident. Automaticdeconstruction of manually created KRs that omit or under-representcertain concepts or relationships may yield atomic knowledgerepresentation models (AKRMs) with associated omissions orunder-representations.

Natural-language communication may implicitly convey data associatedwith concepts or relationships. Concepts and relationships associatedwith implied meanings of communication may be susceptible to detectionvia inferential analysis techniques. Inferential analysis techniques maybe applied to natural-language communication to ascertain elementalconcepts and elemental concept relationships. In some embodiments, theelemental concepts and relationships ascertained via inferentialanalysis techniques may augment or complement elemental concepts andrelationships ascertained via techniques for deconstructing knowledgerepresentations. Though, embodiments are not limited in this regard.

FIG. 14 illustrates an exemplary system 2100 that may be employed insome embodiments for implementing an atomic knowledge representationmodel (AKRM) involved in analysis and synthesis of complex knowledgerepresentations (KRs), in accordance with some embodiments of thepresent invention. In some embodiments, exemplary system 2100 mayimplement inferential analysis techniques through an inference engine2102. In some embodiments, an inference engine 2102 may be implementedas software executed on one or more processors, as hardware, or as acombination of software and hardware. In some embodiments, the inferenceengine 2102 may apply inference rules (or “rules of implied meaning”) toreference data 1904 and/or to elemental data structure 120 to ascertainconcepts and relationships, and/or to estimate probabilities associatedwith concepts and relationships.

In some embodiments, reference data 1904 may comprise natural languagedocuments. Natural language documents may include text-based documents,audio recordings, or audiovisual recordings. In some embodiments,natural language documents may be collected in a reference corpus or inreference corpora. In some embodiments, natural language documents maycontain words organized into sentences and/or paragraphs. In someembodiments, natural language documents may be encoded as data on one ormore computer-readable media.

In some embodiments, inference engine 2102 may identify elementalcomponents by applying linguistic inference rules to reference data1904. In some embodiments, a linguistic inference rule may comprise alinguistic pattern and an extraction rule. In some embodiments, applyinga linguistic inference rule to reference data 1904 may comprisesearching reference data 1904 for language that matches the linguisticpattern, and, upon detecting such language, applying the extraction ruleto extract an elemental component from the detected language.

In some embodiments, a linguistic pattern may comprise a description ofone or more linguistic elements and one or more constraints associatedwith the linguistic elements. A linguistic element may be a word, aphrase, or any other linguistic unit. Elements in a linguistic patternmay be fully constrained or partially constrained. For example, one ormore attributes of an element, such as the element's part-of-speech, maybe specified, while other attributes of an element, such as theelement's spelling, may be unspecified. As another example, a linguisticpattern may constrain one or more elements to appear in a specifiedorder, or may simply constrain one or more elements to appear in thesame sentence. A linguistic pattern may be represented using techniquesknown in the art or any other suitable techniques. One of skill in theart will appreciate that techniques for using ASCII characters torepresent a search pattern, template, or siring may be used to representa linguistic pattern. Though, embodiments are not limited in thisrespect.

As a simple illustration, the following text may represent a linguisticpattern: SEQUENCE(ELEM1.NOUN, ELEM2.WORDS(“is a”), ELEM3.NOUN). Theillustrative pattern contains three elements. The first element, ELEM1,is constrained to be a noun. The second element, ELEM2, is constrainedto include the words “is a.” The third element, ELEM3, is constrained tobe a noun. The illustrative pattern imposes a constraint that theelements must be detected in the specified sequence. Thus, a portion ofthe reference data 1904 containing the sentence fragment “biology is ascience” would match the illustrative pattern, because the fragmentcontains the noun “biology,” the words “is a,” and the noun “science” ina sequence.

As a second illustration, the following text may represent a linguisticpattern: SENTENCE(ELEM1.NOUN, ELEM2.NOUN). This illustrative patterncontains two elements. The first element, ELEM1, is constrained to be anoun. The second element, ELEM2, is also constrained to be a noun. Theillustrative pattern further imposes a constraint that the elements mustbe detected in the same sentence. Thus, a portion of the reference data1904 containing a sentence with the nouns “biology” and “science” wouldmatch the illustrative pattern.

In some embodiments, an extraction rule may comprise instructions forconstructing an elemental component based on the portion of thereference data that matches the linguistic pattern. In some embodiments,the extraction rule may specify construction of an elemental componentcomprising an elemental concept, an elemental concept relationship, oran elemental concept and a relationship. In some embodiments, theextraction rule may comprise instructions for setting the elementalcomponent's attributes, such as an elemental concept's label or anelemental concept relationship's type. An extraction rule may berepresented using techniques known in the art or any other suitabletechniques.

For example, the first illustrative linguistic pattern described above(SEQUENCE(ELEM1.NOUN, ELEM2.WORDS(“is a”), ELEM3.NOUN)) may beassociated with an extraction rule. The associated extraction rule mayspecify that upon detection of text matching the linguistic pattern, anelemental concept relationship should be constructed. The extractionrule may specify that the relationship's type is subsumptive, i.e. thatELEM3 subsumes ELEM1.

In some embodiments, inference engine 2102 may identify elementalcomponents by applying elemental inference rules to elemental datastructure 120. An elemental inference rule may comprise a rule forinferring an elemental component from data associated with elementaldata structure 120.

In some embodiments, an elemental inference rule may comprise a rule fordetecting a subsumption relationship between two elemental concepts bycomparing characteristic concepts associated with the two elementalconcepts. In some embodiments, concept A₁ may be a characteristicconcept of concept A if concepts A and A₁ have a definitionalrelationship such that concept A₁ defines concept A. In someembodiments, an elemental inference rule may specify that concept Asubsumes concept B if each characteristic concept A_(i) of concept A isalso a characteristic concept B_(j) of concept B, or subsumes acharacteristic concept B_(j) of concept B.

For example, FIG. 23 illustrates concept A 3002 and concept B 3010. AsFIG. 23 illustrates, concept A has two characteristic concepts, A₁ 3004and A₂ 3006, while concept B has three characteristic concepts, B₁ 3012,B₂ 3014, and B₃ 3016. According to the elemental inference ruledescribed above, concept A subsumes concept B if (1) concept A₁ subsumes(or is identical to) one of B₁, B₂, or B₃, and (2) concept A₂ subsumes(or is identical to) one of B₁, B₂, or B₃.

FIG. 24 further illustrates the elemental inference rule describedabove. In the illustration of FIG. 24, concept “fruit” 3102 has threecharacteristic concepts, “plant” 3104, “skin” 3106, and “seed” 3108. Inthe illustration, concept “apple” has four characteristic concepts,“tree” 3112, “skin” 3114, “seed” 3116, and “round” 3118. According tothe elemental inference rule described above, concept “fruit” subsumesconcept “apple” (or, equivalently, an “apple” is a “fruit”) because twoof the characteristic concepts of “fruit” 3102 (“skin” 3106 and “seed”3108) are identical to characteristic concepts of “apple” 3110 (“skin”3114 and “seed” 3116,” respectively), while the third characteristicconcept of “fruit” 3110 (“plant” 3104) subsumes “tree” 3112, which is acharacteristic concept of “apple” 3110. Though, in some embodiments, adefinitional relationship may exist only between a concept andconstituents of that concept.

In some embodiments, inference engine 2102 may estimate probabilitiesassociated with elemental components by applying elemental inferencerules to elemental data structure 120. In some embodiments, an elementalinference rule may comprise a rule for estimating a probability of asubsumption relationship between two elemental concepts A and B based onprobabilities associated with the characteristic concepts of A and B(A_(i) and B_(j), respectively). For example, an elemental inferencerule may estimate a probability of a subsumption relationship betweenelemental concepts A and B as follows:

${\Pr ( {\text{concept}\text{A}\text{subsumes concept}\text{B}} )} = {{\Pr ( {{\text{an object is an instance of}\text{A}}{\text{it is an instance}\text{B}}} )} = {\frac{1}{m}{\sum\limits_{i - 1}^{m}{\Pr ( {A_{i}B_{j{(i)}}} )}}}}$

where m is a number of characteristic concepts A_(i) of concept A, Prdenotes a probability, and B_(j(i)) is a characteristic concept of Bsuch that A_(i) and any remaining characteristic concepts of B areindependent.

Characteristic concept B_(j(i)) may be identified using statisticalparameter estimation techniques known in the art and any other suitabletechniques. Embodiments are not limited in this regard. In someembodiments, maximum-a-posteriori or minimum-mean-squared errorestimators may be used. In some embodiments, an estimator derived byminimizing an appropriate loss function may be used. In someembodiments, characteristic concept B_(j(i)) may be identified through amaximum likelihood estimate approach:

B _(j(i))=argmax_(Bk) Pr(A _(i) |B _(k))

where B_(k) is a characteristic concept of concept B, andPr(A_(i)|B_(k)) may be calculated based on a model of probabilitiesassociated with elemental concepts and relationships in elemental datastructure 120, such as the statistical graphical model associated with astatistical engine 1902 described above. Though, Pr(A_(i)|B_(k)) may becalculated using techniques known in the art, such asmaximum-a-posteriori error estimators, minimum-mean-squared errorestimators, other statistical parameter estimation techniques, or anyother suitable techniques. Embodiments are not limited in this regard.

In one aspect, an elemental concept relationship may be added to anelemental data structure if a probability associated with therelationship exceeds a threshold. The threshold may be adjusted based ona user's preference for certainty and aversion to error. In anotheraspect, any probabilities calculated by inference engine 2102 may beshared with statistical engine 1902 and integrated into a statisticalgraphical model of elemental data structure 120.

In some embodiments, linguistic inference rules and elemental inferencerules may be used individually. That is, in some embodiments, elementalcomponents identified by a first linguistic inference rule or elementalinference rule may be added to an elemental data structure without firstapplying a second linguistic inference rule or elemental inference ruleto confirm the inference obtained by applying the first rule.

In some embodiments, linguistic inference rules and elemental inferencerules may be used jointly. That is, in some embodiments, elementalcomponents identified by a first linguistic inference rule or elementalinference rule may not be added to an elemental data structure until theinference obtained by applying the first rule is confirmed viaapplication of a second linguistic inference rule or elemental inferencerule.

In some embodiments, inferential rules may be applied to reference data1904 or to elemental data structure 120 in response to the occurrence ofa triggering event. In some embodiments, a triggering event may be anevent associated with analytical activity or synthetical activityinvolving an elemental component of elemental data structure 120. Insome embodiments, adding a new elemental concept or a new elementalconcept relationship to elemental data structure 120 may be a triggeringevent. Additionally or alternatively, removing an elemental componentfrom data structure 120 may be a triggering event. Alternatively oradditionally, using an elemental component of data structure 120 duringsynthesis of an output KR 190 may be a triggering event.

For example, when an analytical component 1802, such as analysis engine150, adds an elemental concept to elemental data structure 120,inference engine 2102 may apply elemental inference rules to elementaldata structure 120 to infer relationships between the new elementalconcept and other elemental concepts. Alternatively or additionally,inference engine 2102 may apply elemental inference rules to inferrelationships between a concept related to the new elemental concept andother elemental concepts. Alternatively or additionally, inferenceengine 2102 may apply linguistic inference rules to reference data 1904to infer relationships between the new elemental concept and otherelemental concepts. Alternatively or additionally, inference engine 2102may apply linguistic inference rules to reference data 1904 to inferrelationships between a concept related to the new elemental concept andother elemental concepts.

In some embodiments, a triggering event may be an event associated withobtaining context information 180 associated with an elemental componentof elemental data structure 120. For example, when synthesis engine 170receives context information 180 containing an active concept, inferenceengine 1902 may apply inference rules to infer elemental conceptsrelated to the active concept.

In some embodiments, linguistic inference rules may be applied otherthan in response to a triggering event. For example, linguisticinference rules may be applied continually or periodically to curate orrefine elemental data structure 120.

FIG. 25 depicts an exemplary method of modifying an elemental datastructure based on an inference. At act 3202 of the exemplary method, afirst analysis rule is applied to deconstruct a knowledge representationinto an elemental component. At act 3204 of the exemplary method, theelemental component obtained by applying the first analysis rule isadded to the elemental data structure.

At act 3206 of the exemplary method, candidate data associated with theelemental data structure is inferred. In some embodiments, the candidatedata comprises an elemental component, such as an elemental conceptand/or an elemental concept relationship. In some embodiments, thecandidate data comprises a probability associated with an elementalconcept or an elemental concept relationship, the probability may beassociated with an elemental component already present in the elementaldata structure, or may be associated with an elemental component that isnot present in the data structure.

At act 3206, the act of inferring the candidate data comprisesdetecting, in reference data, language corresponding to a linguisticpattern. In some embodiments, the linguistic pattern is encoded as acomputer-readable data structure storing data associated with thelinguistic pattern. In some embodiments, the linguistic patterncomprises a description of one or more linguistic elements. In someembodiments, a description of a linguistic element may fully specify thelinguistic element, such a single, predetermined word or phrase maysatisfy the specification. In some embodiments, a description of alinguistic element may partially specify the linguistic element, suchthat a plurality of words or phrases may satisfy the specification. Insome embodiments, the linguistic pattern further comprises one or moreconstraints associated with the linguistic elements. In someembodiments, a constraint may impose a total or partial ordering on twoor more linguistic elements. For example, the constraint may require twoor more of the linguistic elements to appear sequentially. In someembodiments, a constraint may impose a proximity constraint on two ormore linguistic elements. For, example, the constraint may require twoor more of the linguistic elements to appear within a specified numberof words of each other, within the same sentence, or within the sameparagraph.

At act 3206, in some embodiments, detecting the language correspondingto the predetermined linguistic pattern comprises detecting a first wordor phrase followed by a subsumptive expression followed by a second wordor phrase. In some embodiments, the first word or phrase is associatedwith a first elemental concept. In some embodiments, the first word orphrase is a label of the first elemental concept. In some embodiments,the second word or phrase is associated with a second elemental concept.In some embodiments, the second word or phrase is a label of the secondelemental concept. In some embodiments, the subsumptive expressioncomprises a word or phrase that denotes a subsumptive relationship. Insome embodiments, the subsumptive expression comprises “is a,” “is an,”“is a type of,” “is a field of,” or any other expression having ameaning similar to or synonymous with the meanings of the enumeratedexpressions.

At act 3206, in some embodiments, detecting the language correspondingto the predetermined linguistic pattern comprises detecting a first wordor phrase followed by a definitional expression followed by a secondword or phrase. In some embodiments, the definitional expressioncomprises a word or phrase that denotes a definitional relationship. Insome embodiments, the definitional expression comprises “has a,” “hasan,” “is characterized by,” “includes a,” “includes an,” or any otherexpression having a similar or synonymous meaning.

At act 3206, in some embodiments, the act of inferring the candidatedata further comprises applying an extraction rule associated with thelinguistic pattern to obtain data associated with the detected language.In some embodiment, the candidate data comprises the obtained data.

At act 3208 of the exemplary method, the elemental data structure ismodified to combine the candidate data and data associated with theelemental data structure. In some embodiments, (he candidate data isadded to the elemental data structure. In some embodiments, an elementalcomponent is added to or removed from the elemental data structure basedon the candidate data. In some embodiments, the candidate data isassigned as an attribute of an elemental component of the elemental datastructure.

In some embodiments, the exemplary method of FIG. 25 further comprisesinferring second candidate data associated with the elemental datastructure. FIG. 26 depicts an exemplary method of inferring secondcandidate data. At act 3302 of the exemplary method, a first elementalconcept is identified in the elemental data structure. In someembodiments, the first elemental concept identified at act 3302 of theexemplary method of FIG. 26 is associated with the first word or phrasedetected at act 3206 of the exemplary method of FIG. 25. At act 3304 ofthe exemplary method, a second elemental concept is identified in theelemental data structure. In some embodiments, the second elementalconcept identified at act 3304 of the exemplary method of FIG. 26 isassociated with the second word or phrase detected at act 3206 of theexemplary method of FIG. 25. Though, the first and second elementalconcepts identified at acts 3302 and 3304 of the exemplary method ofFIG. 26 may be any elemental concepts. In some embodiments, the firstelemental concept may be defined by one or more first characteristicconcepts. In some embodiments, the second elemental concept may bedefined by one or more second characteristic concepts.

At act 3306 of the exemplary method, it is determined that each of thesecond characteristic concepts is also a first characteristic concept orsubsumes a first characteristic concept. In some embodiments, thisdetermination gives rise to an inference that the second elementalconcept subsumes the first elemental concept.

FIG. 27 depicts another exemplary method of modifying an elemental datastructure based on an inference. Acts 3202 and 3204 of the exemplarymethod are described above. At act 3406 of the exemplary method, acandidate probability associated with an elemental concept relationshipis inferred. In some embodiments, the elemental concept relationship mayrepresent a relationship between first and second elemental concepts. Insome embodiments, the elemental concept relationship may comprise atype, such as a subsumptive type or a definitional type. In someembodiments, the candidate probability may comprise an estimate of aprobability that a relationship of the specified type exists between thefirst and second elemental concepts.

At act 3406 of the exemplary method, inferring the candidate probabilitycomprises applying elemental inference rules to the elemental datastructure. FIG. 28 depicts an exemplary method of applying elementalinference rules to the elemental data structure. At act 3502 of theexemplary method, a first elemental concept is identified in theelemental data structure. In some embodiments, the first elementalconcept identified at act 3502 of the exemplary method of FIG. 28 is thefirst elemental concept associated with the elemental conceptrelationship associated with the candidate probability at act 3406 ofthe exemplary method of FIG. 27. At act 3504 of the exemplary method, asecond elemental concept is identified in the elemental data structure.In some embodiments, the second elemental concept identified at act 3502of the exemplary method of FIG. 28 is the second elemental conceptassociated with the elemental concept relationship associated with thecandidate probability at act 3406 of the exemplary method of FIG. 27. Insome embodiments, the first and second elemental concepts may be definedby one or more first and second characteristic concepts, respectively.

At act 3506 of the exemplary method, the candidate probability may beestimated by calculating the probability that each of the secondcharacteristic concepts is also a first characteristic concept orsubsumes a first characteristic concept.

In yet another exemplary method of modifying a data structure based onan inference, candidate data associated with the elemental datastructure may be inferred by applying one or more inferential analysisrules to at least one of reference data or the elemental data structure.The inferred candidate data may comprise an elemental component, aprobability associated with an elemental component, or an elementalcomponent and a probability associated with an elemental component. Theone or more inferential analysis rules may comprise a linguisticinference rule, an elemental inference rule, or a linguistic inferencerule and an elemental inference rule. In addition, in the exemplarymethod, the elemental data structure may be modified by incorporatingthe candidate data into the elemental data structure. Incorporating thecandidate data into the elemental data structure may comprise adding thecandidate data to the elemental data structure, removing an elementalcomponent from the elemental data structure based on the candidate data,combining the candidate data with data associated with the elementaldata structure, etc.

V. Preference Expression

As described above, in an exemplary system such as system 1800 of FIG.11, embodiments of synthesis engine 170 may synthesize output knowledgerepresentations by applying knowledge processing rules 130 to elementaldata structures 120. Also, as described above, embodiments of synthesisengine 170 may be provided with context information 180 associated witha data consumer 195. In some embodiments, context information 180 mayinclude, for example, a textual query or request, one or more searchterms, identification of one or more active concepts, a request for aparticular form of output KR 190, etc. In some embodiments, receipt ofcontext information 180 may be interpreted as a request for an outputKR, without need for an explicit request to accompany the context.

In some embodiments, in response to an input request and/or contextinformation 180, synthesis engine 170 may apply one or more appropriateknowledge processing rules 130 encoded in AKRM data set 110 to elementaldata structure 120 to synthesize one or more additional concepts and/orconcept relationships not explicitly encoded in elemental data structure130. In some embodiments, synthesis engine 170 may apply appropriateknowledge processing rules 130 to appropriate portions of elemental datastructure 120 in accordance with the received input request and/orcontext information 180. For example, if context information 180specifies a particular type of complex KR to be output, in someembodiments only those knowledge processing rules 130 that apply tosynthesizing that type of complex KR may be applied to elemental datastructure 120. In some embodiments, if no particular type of complex KRis specified, synthesis engine 170 may synthesize a default type ofcomplex KR. such as a taxonomy or a randomly selected type of complexKR. In some embodiments, if context information 180 specifies one ormore particular active concepts of interest, for example, synthesisengine 170 may select only those portions of elemental data structure120 related (i.e., connected through concept relationships) to thoseactive concepts, and apply knowledge processing rules 130 to theselected portions to synthesize the output KR. In some embodiments, apredetermined limit on a size and/or complexity of the output complex KRmay be set, e.g., by a developer of the exemplary system 1800, forexample conditioned on a number of concepts included, hierarchicaldistance between the active concepts and selected related concepts inthe elemental data structure, encoded data size of the resulting outputcomplex KR, processing requirements, relevance, etc.

In some embodiments, an output KR may be encoded in accordance with anyspecified type of KR indicated in the received input. In someembodiments, the output KR may be provided to data consumer 195. Asdiscussed above, data consumer 195 may be a software application or ahuman user who may view and/or utilize the output KR through a softwareuser interface, for example.

In some embodiments, a data consumer 195 may provide context information180 for directing synthesis operations. For example, by inputtingcontext information 180 along with a request for an output KR 190, adata consumer may direct exemplary system 1800 to generate an output KR190 relevant to context information 180. For example, contextinformation 180 may contain a search term mappable to a concept ofinterest to data consumer 195. In some embodiments, synthesis engine 170may, for example, apply knowledge processing rules to those portions ofelemental data structure 120 that are more relevant to the conceptassociated with the context information 180.

FIG. 31 illustrates an exemplary system 3800 that may be employed insome embodiments for implementing an atomic knowledge representationmodel (AKRM) involved in analysis and synthesis of complex knowledgerepresentations (KRs), in accordance with some embodiments of thepresent invention. In some embodiments, context information 180 maycomprise preference information. In some embodiments, such preferenceinformation may comprise a preference model. In some embodiments,synthesis engine 170 may rely on the preference information and/orpreference model when synthesizing KRs and/or presenting KRs to a dataconsumer.

Some embodiments of exemplary system 3800 may include a preferenceengine 3802. In some embodiments, synthetical components 1852 maycomprise preference engine 3802. In some embodiments, preference engine3802 may receive context information 180 containing preferenceinformation. In some embodiments, the preference information maycomprise a preference model. In some embodiments, preference engine 3802may create a preference model based on the preference information. Insome embodiments, preference engine 3802 may provide preferenceinformation and/or a preference model to synthesis engine 170. In someembodiments, synthesis engine 170 may rely on the preference informationand/or the preference model provided by preference engine 3802 to guidesynthesis of a complex KR in accordance with preferences of a dataconsumer 195. In some embodiments, preference engine 3802 may rely onpreference information and/or the preference model to guide presentationof concepts in a complex KR and/or presentation of output KRs inaccordance with preferences of a data consumer 195.

In some embodiments, preference engine 3802 may assign a weight orprobability to an active concept or to any elemental concept in anelemental data structure, the weight representing a relevance of theconcept to a data consumer 195. The preference engine 3802 may calculatethe weight assigned to a concept based on context information 180,and/or preference information, and/or the preference model.

Aspects and example embodiments of preference engine 3802 are describedin U.S. Provisional Application No. 61/498,899, filed Jun. 20, 2011, andtitled “Method and Apparatus for Preference Guided Data Exploration,”which is incorporated by reference herein in its entirety. Someembodiments of preference engine 3802 may allow a data consumer 195 tospecify different types of user preferences, e.g., among items and/oramong attributes of the items.

In some embodiments, preference engine may provide preferenceinformation and/or a preference model to synthesis engine 170 tofacilitate synthesis of a complex KR in accordance with preferences of adata consumer 195. In some embodiments, a preference model may compriseweighted concepts. In some embodiments, a weighted concept in apreference model may correspond to a concept in an elemental datastructure 120.

In some embodiments, a preference model may influence the synthesisprocess in various ways. For example, in some embodiments, synthesisengine 170 may synthesize more concepts in relation to a concept in thepreference model that is more heavily weighted (a “more preferred”concept), while synthesizing fewer concepts in relation to a lessheavily weighted concept of the preference model (a “less preferred”concept). Synthesis engine 170 may control a degree of synthesis inrelation to a concept in a variety of ways. In some embodiments thesynthesis engine 170 may apply more knowledge processing rules inrelation to more preferred concepts. In some embodiments, the synthesisengine 170 may use less stringent thresholds when applying a knowledgeprocessing rule in relation to a more preferred concept. For example,synthesis engine 170 may use a lower relevance threshold, coherencethreshold, semantic similarity threshold, or synonym threshold whenapplying a relevance rule, coherence rule, associative relationshiprule, or synonym rule.

Furthermore, in some embodiments, synthesis engine 170 may temporallyprioritize synthesis in relation to a more preferred concept oversynthesis in relation to a less preferred concept. For example,synthesis engine 170 may synthesize concepts in relation to a morepreferred concept before synthesizing concepts in relation to a lesspreferred concept. If synthesis engine 170 is configured to generate atmost a certain maximum number of concepts, temporally prioritizingsynthesis in this manner ensures that synthesis in relation to lesspreferred concepts does not occur at the expense of synthesis inrelation to more preferred concepts. In some embodiments, synthesisengine 170 may begin synthesizing in relation to a less preferredconcept only if the certain maximum number of concepts is not generatedby first completing synthesis in relation to more preferred concepts.

Likewise, the synthesis engine 170 may devote more processing resourcesand/or processing time to synthesizing in relation to a more preferredconcept, while devoting less processing resources and/or processing timeto synthesizing in relation to a less preferred concept.

Additionally or alternatively, some embodiments of preference engine3802 may rely on preference information and/or a preference model toguide presentation of an output KR's concepts in accordance withpreferences of data consumer 195. In some embodiments, preferenceinformation may include a general preference model that may be used toproduce a ranking of items or concepts in accordance with preferences ofdata consumer 195. Preference engine 3802 may use such rankinginformation to impose an ordering on the concepts in an output KR 190.

In other words, in some embodiments an output KR 190 may be presented toa data consumer 195 in a format that is not rank-ordered, such as agraph. In other embodiments, an output KR 190 may be presented to a dataconsumer 195 in a rank-ordered format, such as a list, with the rankingsbeing assigned based on preference information.

VI. Customization of Knowledge Representations

A. An Organization of the Elemental Data Structure

As shown in FIG. 32A, an embodiment of elemental data structure 120 mayinclude a universal kernel 3902 and one or more customized modules 3904.Broadly, the universal kernel may contain concepts and relationshipsthat are generally applicable to some number of members or all membersof a population, such as the population of data consumers. Thus, theknowledge representation (KR) system may rely on the universal kernel torespond to a query provided by any data consumer, because the universalkernel may be shared by and common to all data consumers.

By contrast, each customized module may contain concepts andrelationships that are specifically applicable to a particular dataconsumer 195 and/or knowledge domain. In other words, a customizedmodule may correspond to a specific data consumer 195, and the knowledgecontained in the customized module may pertain to the corresponding dataconsumer. Thus, when a data consumer submits a query, the KR system mayrely on a data consumer's customized module to provide a response thatis tailored to (customized for) the data consumer. Likewise, acustomized module may correspond to a knowledge domain, and the KRsystem may rely on that domain-specific module to provide a responsethat is tailored to the knowledge domain.

The universal kernel and the customized modules may be constructed fromdifferent sources of information. For example, the universal kernel maybe constructed by applying analytical rules to input KRs or referencedata derived from reference corpora. Such reference corpora may contain,in the aggregate, knowledge that relates to some number of dataconsumers (or knowledge domains), a specified subset of data consumers(or knowledge domains), or all data consumers (or knowledge domains).That is, the universal kernel may be constructed by analyzing knowledgerepresentations of “universal” knowledge.

By contrast, a customized module may be constructed by applyinganalytical rules to a data consumer model 2004. In some embodiments, thedata consumer model may be provided to the analysis engine 150 by afeedback engine 2002. As described above, a data consumer model 2004 maycontain knowledge that relates specifically to a data consumer 195.Alternatively or additionally, a customized module may be constructed byanalyzing a representation of domain-specific knowledge.

In some embodiments, the universal kernel may be constructed only fromKRs that represent universal knowledge, and not from KRs that representknowledge specific to a data consumer. In such embodiments, analysisperformed on data consumer models provided by the feedback engine mayresult in modifications of the customized modules, but not inmodifications of the universal kernel.

In some embodiments, the elemental data structure 120 may includerelationships between concepts in customized modules and concepts in theuniversal kernel. Such relationships may reflect customizedrelationships between universal concepts and data-consumer-specificconcepts.

For example, the universal kernel might include relationships betweenthe concept “bank” and the concept “First National Bank” if FirstNational Bank is well-known by members of the relevant population, whichmight be determined, for example, by the popularity of the concept“First National Bank” among data consumers that make up the population.In addition, the customized module corresponding to one data consumermay include a street address of the branch of First National Bank wherethe data consumer has a checking account, while another customizedmodule corresponding to another data consumer may include a differentstreet address of a branch of a different bank where the other user hasa checking account. Also, the elemental data structure may include arelationship between the first data consumer's “bank address” conceptand the universal kernel's “bank” concept. Likewise, the elemental datastructure may include a relationship between the other data consumer's“bank address” concept and the universal kernel's “bank” concept.

In some embodiments, a customized module may correspond to a knowledgedomain. Just as a data-consumer-specific customized module containsknowledge that is specifically applicable to a corresponding dataconsumer, a domain-specific customized module contains knowledge that isspecifically applicable to the corresponding knowledge domain.Domain-specific customized modules may be constructed by analyzing KRsthat contain knowledge that relates generally to the knowledge domain.Additionally or alternatively, domain-specific customized modules may beconstructed by analyzing data consumer models that correspond toentities that are closely associated with the relevant knowledge domain.

For example, an elemental data structure may include a customized modulethat corresponds to a “biotechnology start-up companies” knowledgedomain. This domain-specific customized module may be constructed fromreference corpora regarding biotechnology, start-up companies, biology,technology, business, biotechnology start-up companies, etc.Additionally or alternatively, this domain-specific module may beconstructed from data consumer models that correspond to biotechnologystart-up companies, professionals who work in the biotechnology start-upindustry, etc. Also, this domain-specific customized module may containthe concept “investment bank,” which may be related to the universalkernel's concept “bank.”

B. Constructing a Customizable Elemental Data Structure

FIG. 33 illustrates an exemplary process of constructing an elementaldata structure which includes a universal kernel and customized modules.The process may be performed by one or more processors executinginstructions stored in a computer-readable medium. At act 4002 of theexemplary method, first information is analyzed to identify an elementalcomponent associated with a data consumer. For example, an analysisengine may apply one or more rules to deconstruct the second informationinto one or more elemental components. The first information may includecontext information, a data consumer model associated with the dataconsumer, or any KR that contains knowledge specifically applicable tothe data consumer. In some embodiments, the first information mayinclude interaction data that corresponds to a behavior of the dataconsumer or an interaction of the data consumer with the KR system. Insome embodiments, the first information may be fed back to the analysisengine of the KR system by a feedback engine of the KR system.

At act 4004 of the exemplary method, the elemental component associatedwith the data consumer is added to the elemental data structure as partof a customized module that corresponds to the data consumer. Theelemental component may include an elemental concept and/or an elementalrelationship. If the elemental component is a concept, the concept isadded to the customized module. Alternatively, if the elementalcomponent is a relationship, the relationship is added to the customizedmodule. The relationship may be between concepts in the customizedmodule, between a concept in the customized module and a concept inanother customized module (e.g., a relationship between a concept in adata-consumer-specific module and a concept in a domain-specificmodule), or between a concept in the customized module and a concept inthe universal kernel.

At act 4006 of the exemplary method, second information is analyzed toidentify a second elemental component associated with a population ofdata consumers. For example, an analysis engine may apply one or morerules to deconstruct the second information into one or more elementalcomponents. The elemental component(s) obtained through the analysisprocess may be associated with some number of data consumers, or beindependent of individual data consumers. In some embodiments, theelemental component(s) may be generally applicable to the population ofdata consumers. In some embodiments, the first information may comprisea reference corpus of information, or a knowledge representation, thatis generally applicable to the population of data consumers.

At act 4008 of the exemplary method, the second elemental conceptassociated with the population of data consumers is added to theelemental data structure as part of the universal kernel. The elementalcomponent may include an elemental concept and/or an elementalrelationship. If the elemental component is a relationship, therelationship may be between concepts in the universal kernel, or betweena concept in the universal kernel and a concept in a customized module.

Some embodiments of the process of constructing a customizable elementaldata structure may include the additional acts depicted in FIG. 34. Atact 4102, third information may be analyzed to identify a thirdelemental component associated with a knowledge domain. The analysisprocess may involve the application of rules to deconstruct the thirdinformation into elemental components, as described above. The thirdinformation may include context information, a data consumer model, areference corpus, or any KR that contains knowledge specificallyapplicable to the knowledge domain.

At act 4104, the elemental component associated with the knowledgedomain may be added to the elemental data structure as part of acorresponding domain-specific module. As described above, if theelemental component is a relationship, the relationship may be internalto the domain-specific module, or may be between a concept in thedomain-specific module and a concept in any other module or in theuniversal kernel.

C. Modifying the Customizable Elemental Data Structure

Embodiments of the customizable elemental data structure may be modifiedbased on analysis of the universal kernel and/or the customized modules.Such analysis (hereinafter “iterative analysis”) may occur continually,periodically, intermittently, at scheduled intervals, or in any othersuitable way. The rules applied during iterative analysis of thecustomizable data structure may be the same as the rules applied duringanalysis of input KRs, or the rules may differ at least in part.

The iterative analysis process may invoke some, all, or none of thecrowd-sourcing techniques described above. For example, in someembodiments, the universal kernel may be modified based on iterativeanalysis (e.g., crowd-sourcing) of the customized modules. In otherembodiments, the universal kernel may be modified based on iterativeanalysis of the universal kernel, but not modified based on iterativeanalysis of the customized modules. In addition, a customized module maybe modified based on iterative analysis of itself, iterative analysis ofother customized modules, and/or iterative analysis of the universalkernel.

The crowd-sourcing techniques described above may be applied to thecustomizable elemental data structure in any suitable way. For example,the KR system may perform mathematical or statistical processing on thecustomized modules to generate indicators regarding concepts orrelationships contained in the customized modules. The indicators mayindicate, for example, the popularity of a concept (e.g., the number orpercentage of data consumers that recognize the concept), the importanceof a concept (e.g., the intensity of the data consumers' interest in theconcept) or a trend associated with the concept (e.g., the rate at whichrecognition of the concept or intensity of interest in the concept ischanging). If an indicator associated with a concept (or relationship)satisfies a criterion for performing a modification to the elementaldata structure, the KR system may perform such a modification. Suchcriteria may be fixed in advance, configurable, or adaptable.

The iterative analysis process may result in one or more modificationsto the customized modules. For example, an elemental concept orelemental concept relationship may be added to or removed from one ormore customized modules. Also, two or more elemental concepts may beresolved into a single elemental concept, or an elemental concept may besplit into two or more elemental concepts.

As indicated above, in some embodiments, the iterative analysis processmay result in modifications to the universal kernel. The types ofmodifications that may be applied to the universal kernel may be thesame types of modifications described in the preceding paragraph. Insome embodiments, the universal kernel may be modified based on theiterative analysis of the customized modules. The modifications to theuniversal kernel may be independent of any modifications to thecustomized modules, or may depend on corresponding modifications to thecustomized modules.

Through iterative analysis, operations performed on the customizedmodules may result in corresponding—but not necessarilyidentical—operations being performed on the universal kernel. Forexample, if the concept “Rio de Janeiro Olympics” is added to a largenumber or percentage of customized modules, the universal kernel may bemodified to add a relationship between the existing concepts “Rio deJaneiro” and “Olympics,” or the universal kernel may be modified to addthe concept “Rio de Janeiro Olympics,” depending on criteria such as thepopularity of the concept, the intensity of interest in the concept,trendiness of the concept, or any other suitable criteria, includingscoring or ranking criteria. Accordingly, the existence of a concept inone or more customized modules can result in a relationship being addedto the universal kernel.

In some embodiments, the presence of a residual term in a conceptincluded in one or more customized modules may result in variousmodifications to the customizable elemental data structure, depending onthe criteria satisfied and on how the system is configured. For example,if the universal kernel includes the concept “management” and theconcept “agile management” is added to one or more customized modules,the iterative analysis process may result in the concept “agilemanagement” being split into the related concepts “agile” and“management,” and the two new concepts (and the relationship betweenthem) may be added to the customized modules. Alternatively, when theconcept “agile management” is split into related concepts, the concept“agile” may be added to the customized modules, and a relationship maybe added between the concept “agile” in the customized modules and theconcept “management” in the universal kernel. Which of thesealternatives is selected may depend on criteria such as the popularityof the concept, the intensity of interest in the concept, trendiness ofthe concept, or any other suitable criteria, including scoring orranking criteria.

In some embodiments, iterative analysis across multiple customizedmodules may reveal attribute or hierarchical commonality amongst one ormore concepts in the universal kernel. For example, if attributes of afirst concept in customized module are found to overlap or be subsumedby attributes of a second concept in one or more distinct customizedmodules, an action may be taken to establish a relationship thatpreviously did not exist between the first and second concept in theuniversal kernel. Any statistical or probabilistic analysis, for exampleas described above in sections II-V, may be used to analyze thecollection of customized modules in order to determine whether to modifythe universal kernel.

In some embodiments, customized modules may be sub-grouped, for exampleby knowledge domain, geographic region, interest, organization or anydemographic categorization. During iterative analysis, if modificationsapplied to some customized modules in the sub-group satisfy specifycriteria, the modifications may further be applied to all customizedmodules in the sub-group. In some embodiments, domain-specificcustomized modules may be used to provide the hierarchical sub-grouping.Whether the modifications are applied to customized modules in thesub-group may depend on criteria such as the popularity of theconcepts/relationships that are the object of the modifications, theintensity of interest in those concepts/relationships, the trendiness ofthose concepts/relationships, or any other suitable criteria, includingscoring or ranking criteria.

In some embodiments, the identification of a concept (or relationship)as “conflicting” or “contentious” may be a basis for including theconcept (or relationship) in the customized modules, the universalkernel, both, or neither. For example, if some customized modulesindicate that “cholesterol is good,” while other customized modulesindicate that “cholesterol is bad,” the relationships are said to be“conflicting” or “contentious.” On the one hand, evidence of conflictsin the knowledge among the customized modules may be a basis formaintaining that knowledge only in the customized modules and notimplementing it within the universal kernel. On the other hand, theconflicting relationships may indicate a different type of relationshipbetween the concepts, such as “cholesterol is related to good” and“cholesterol is related to bad.” This different type of relationship maybe added to the universal kernel.

FIG. 35 is a flow chart of an exemplary process of modifying anelemental data structure. The elemental data structure includes auniversal kernel and customized modules. The customized modules may bedata-consumer-specific modules and/or domain-specific modules.

At act 4202, an indicator is obtained. The indicator relates to anelemental component and is based on data within one or more customizedmodules of the elemental data structure. The indicator may indicate anyinformation associated with the elemental component. For example, theindicator may indicate the component's popularity, the intensity ofinterest in the component, or a trend exhibited by the component over aspecified time period. In some embodiments, popularity may berepresented by the number or percentage of customized modules (hatinclude the component. The popularities of different components may beranked, and the ranking may be used as an indicator of the component'srelative popularity.

In some embodiments, the importance of a component may be represented bya score derived from weights associated with the component by thecustomized modules. For example, (he score may be an average weight ormedian weight of the component among the customized modules. In someembodiments, the contribution of each customized module to the totalscore may be weighted, in the sense that each customized module may beassigned a weight which reflects the customized module's importance. Forexample, a customized module that corresponds to thousands of dataconsumers may be assigned a higher weight than a customized module thatcorresponds to a single data consumer. A component's score may becalculated based on both the weights assigned to the customized modulesand the weights assigned to the components.

Modifying the elemental data structure based on indicators of trends mayallow the elemental data structure to adapt quickly to emerging changesin the customized modules. For example, if a concept is added to thecustomized modules at a high rate over a relatively short period oftime, the rate at which the concept is being added (i.e., the trend) maysuggest that the concept merits addition to the universal kernel longbefore other indicators (e.g., popularity and importance) reachsuggestive thresholds. Thus, in some embodiments, trends may be used asindicators.

In some embodiments, the value of an indicator may be obtained bymathematical or statistical processing. For example, an indicator of aconcept's popularity may be obtained by counting the number ofcustomized modules that include the concept, by calculating thepercentage of customized modules that include the concept, or beestimating either of those quantities.

Estimation of indicators may be beneficial in cases where identifyingand counting the modules that contain a concept would be difficult orcostly (e.g., when the number of customized modules is very large, orwhen the customized modules are very large). In some embodiments,indicators may be estimated by a statistical sampling process asillustrated in the How chart of FIG. 36. At step 4302, data samples maybe collected from a representative subset of the customized modules. Forexample, if intensity of interest in a concept is being estimated, thecollected data samples may include a weight associated with the relevantconcept in each of the customized modules. At step 4304, the desiredindicator may be computed over the representative subset, and thisindicator may then be used as an estimate of the true value of thecorresponding indicator over the entire population of customizedmodules. For example, an average weight may be computed from the datacollected in the previous step. This average weight may then be used asan estimate of the average intensity of interest in the concept acrossthe population of customized modules.

At act 4204, it is determined whether the indicator satisfies one ormore criteria for performing a modification operation on an elementaldata structure. The criteria may be thresholds to which the indicatorsare compared. For example, if a concept is ranked among (he N mostpopular concepts, the concept may be added to the universal kernel. Asanother example, if the average weight associated with a concept exceedsa threshold, the concept may be added to the universal kernel.

If an indicator satisfies one of the criteria for performing amodification operation on the elemental data structure (act 4206), thenthe designated modification operation is performed (act 4208). The typesof modification operations that may be performed are described above. Insome embodiments, an indicator's value may be compared to multiplecriteria, and a different modification operation may be performeddepending on which criteria (if any) are met by the indicator's value.

D. Synthesizing with a Customizable Elemental Data Structure

Organizing the elemental data structure to include a universal kerneland customized modules may permit the knowledge representation system torespond to queries by providing results (e.g., output KRs) that arecustomized to the data consumers who submit the queries, withoutunnecessary duplication of data. In other words, each customized module3904 may function as a data-consumer-specific layer of knowledge thatencapsulates a shared kernel of universal knowledge. Responses to aquery can be tailored (“customized”) to a data consumer by applyingsynthesis rules to the data consumer's customized module, in addition tothe universal kernel.

FIG. 37 is a flow chart of an exemplary process of generating a complexknowledge representation from an elemental data structure that includesa universal kernel and a customized module. At act 4402, an inputindicating a requested context is received from a data consumer.Contexts and data consumers are described above.

At act 4404, one or more rules are applied to the elemental datastructure. In some embodiments, applying the one or more rules to theelemental data structure comprises applying the one or more rules to theuniversal kernel and to a customized module. In some embodiments, therule(s) applied to the universal kernel and the customized module may bethe same. In some embodiments, the rule(s) applied to the universalkernel and the customized module may differ, at least in part. Theapplied rules may be synthesis rules, generative rules, and/or knowledgecreation rules such as the knowledge processing rules 130 that areapplied by a synthesis engine 170. The customized module may be adata-consumer-specific module or a domain-specific module.

At step 4406, a concept or relationship is synthesized. The synthesis ofthe concept or relationship is based on the application of the one ormore rules. For example, the synthesis of the concept or relationshipmay result from the application of the rule(s). The synthesis is alsocarried out in accordance with the requested context. Embodiments of asynthesis process that is carried out in accordance with a requestedcontext are described in detail above.

At step 4408, the synthesized concept or relationship is used to outputa complex KR that accords with the requested context. In some cases, anappropriate complex KR may have already been synthesized by the KRsystem or otherwise obtained by the KR system. In such cases, thesynthesized concept or relationship may be used to identify thepre-existing complex KR, which is then provided to the user. However,even if an appropriate complex KR has already been synthesized, thecomplex KR may be re-synthesized to ensure that it reflects any relevantchanges to the elemental data structure that have occurred since thecomplex KR was last generated. Also, in some cases an appropriatecomplex KR may not already be available, in such cases, the synthesizedconcept or relationship may be used to generate a complex KR, which isthen provided to the user.

The complex KR provided at step 4408 is customized to the data consumerthat provided the requested context. As described with regards to act4406, the concept or relationship is synthesized based on theapplication of one or more rules to the universal kernel and to the dataconsumer's customized module. The use of the data consumer's customizedmodule during the synthesis process customizes the synthesized conceptor relationship to the data consumer. Thus, if two data consumers thatcorrespond to different customized modules submit the same query orrequested context, the KR system may provide different complex KRs tothe data consumers (if, for example, the differences between the dataconsumers' customized modules affect the outcome of the synthesisprocess).

The above-described techniques may be implemented in any of a variety ofways. In some embodiments, the techniques described above may beimplemented in software executing on one or more processors. Forexample, a computer or other device having at least one processor and atleast one tangible memory may store and execute software instructions toperform the above-described operations. In this respect,computer-executable instructions that, when executed by the at least oneprocessor, perform the above described operations may be stored on atleast one computer-readable medium. The computer-readable medium may betangible and non-transitory. Likewise, the data structures describedherein (e.g., an elemental data structure, a universal kernel, acustomized module, etc.) may be encoded as computer-readable datastructures and stored in the computer-readable-medium. An elemental datastructure that is encoded as a computer-readable data structure andstored in a computer-readable medium may be referred to as an “elementalcomputer data structure.”

VII. Granularity of Customization

FIG. 13 shows a knowledge representation (KR) system 2000, according tosome embodiments. A brief overview of the components and operation ofembodiments of KR system 2000 is provided below. A detailed descriptionof the components and operation of embodiments of KR system 2000 isprovided above.

KR system 2000 includes an atomic knowledge representation model (AKRM)data set 110. AKRM data set i 10 includes an elemental data structure120 and knowledge processing rules 130. In some embodiments, elementaldata structure 120 may include elemental concepts and elemental conceptrelationships (“elemental relationships”). In some embodiments, theelemental concepts and relationships of elemental data structure 120 maybe organized as a graph, such as a semantic network, with the elementalconcepts corresponding to nodes of the graph, and the elementalrelationships corresponding to edges of the graph. In some embodiments,knowledge processing rules 130 may include rules suitable fordeconstructing KRs or other sources of information (e.g., referencecorpora or data consumer models 2004) to obtain concepts andrelationships, and rules suitable for constructing KRs from concepts andrelationships.

KR system 2000 includes analysis engine 150. In some embodiments,analysis engine 150 may apply one or more knowledge processing rules 130to KRs (e.g., input KRs 160) or other sources of information (e.g.,reference corpora, data consumer models 2004, or elemental datastructure 120) to obtain elemental concepts and relationships. In someembodiments, analysis engine 150 may apply one or more knowledgeprocessing rules 130 to construct a KR from the obtained elementalconcepts and relationships. A KR constructed by analysis engine 150 maybe stored in elemental data structure 120. In some embodiments, feedbackengine 2002 may provide analysis engine 150 with information specific toa data consumer 195, such as information contained in a data consumermodel 2004 (e.g., context information 180 and/or output KRs 190).

In some embodiments, elemental data structure 120 may include auser-specific or domain-specific KR. Embodiments of a user-specific ordomain-specific KR may be encoded in a module that is independent of anyother module of elemental data structure 120, encoded in a module thatis dependent on another module of elemental data structure 120, and/orencoded as one or more modifications to another module of elemental datastructure 120.

KR system 2000 includes synthesis engine 170. In some embodiments,synthesis engine 170 may apply one or more knowledge processing rules130 to one or more KRs (e.g., KRs stored in elemental data structure120) or other sources of information (e.g., reference corpora or dataconsumer models 2004) to obtain complex concepts and relationships. Insome embodiments, synthesis engine 170 may apply one or more knowledgeprocessing rules 130 to construct a KR (e.g., a complex KR) from theobtained complex concepts and relationships. In some embodiments, a KRconstructed by synthesis engine 170 may be organized as a graph, such asa semantic network, with the concepts corresponding to nodes of thegraph, and the relationships corresponding to edges of the graph. Insome embodiments, a KR constructed by synthesis engine 170 may beprovided to a data consumer 195 as an output KR 190.

In some embodiments, KR system 2000 may include one or more interestnetworks. In some embodiments, an interest network may correspond to adata consumer 195 and/or contain information associated with thecorresponding data consumer. In some embodiments, an interest networkmay include KRs, such as output KRs 190 (or portions thereof) providedby synthesis engine 170 to data consumer 195 (e.g., in response to aquery provided by the data consumer). In some embodiments, an interestnetwork may include output KRs 190 (or portions thereof provided bysynthesis engine 170 to data consumer 195 (e.g., in response to a queryprovided by the data consumer) and content that corresponds to thoseoutput KRs 190 (e.g., content identified by KR system 2000 as beingrelevant to those output KRs 190). In some embodiments, interest networkmay include context information 180. In some embodiments, contextinformation 180 may include information provided by data consumer 195(e.g., queries, search terms, demographic information, biographicalinformation, employment history, educational history, or credentials),information regarding an activity of the user (e.g., employment history,educational history, or activities performed with a computing device),information regarding an attribute of the user (e.g., demographicattributes, biographical attributes, or location), and/or any otherinformation relevant to data consumer 195.

In some embodiments, data consumer model 2004 may be an interest networkor include an interest network. Thus, any operations described above asbeing performed on or with data consumer model 2004 may be performed onor with an interest network. For example, in some embodiments, knowledgeprocessing rules 130 may include rules suitable for deconstructinginterest networks to obtain concepts and relationships, and/or rulessuitable for constructing KRs from concepts and relationships. Asanother example, in some embodiments, analysis engine 150 may apply oneor more knowledge processing rules 130 to interest networks to obtainelemental concepts and relationships. As another example, in someembodiments, feedback engine 2002 may provide analysis engine 150 withinterest networks. As another example, in some embodiments, synthesisengine 170 may apply one or more knowledge processing rules 130 to oneor more interest networks to obtain complex concepts and relationships.As yet another example, in some embodiments, concepts and/orrelationships obtained by analyzing an interest network may be used byKR system 2000 to perform disambiguation (e.g., detection and resolutionof ambiguities in a KR), crowd sourcing (e.g., analyzing data associatedwith interest networks of a population of users and modifying a KR toinclude concepts and/or relationships associated with a thresholdportion of the population), and/or tailoring (e.g., analyzing interestnetworks and maintaining different KRs for different users).

In some embodiments, an interest network 2004 may persist for as long asa corresponding data consumer maintains an account with a provider oroperator of KR system 2000. In some embodiments, an interest network2004 may persist indefinitely.

FIG. 32A shows an elemental data structure 120, according to someembodiments. Some embodiments of elemental data structure 120 aredescribed above. In some embodiments, elemental data structure 120 mayinclude a “universal kernel” (or “kernel”) 3902 and one or morecustomized modules 3904. In some embodiments, a kernel 3902 may containconcepts and/or relationships relevant to “universal” (e.g., “general”or “well-known”) knowledge. Some techniques for identifying knowledge asuniversal are described above. In some embodiments, universal conceptsand relationships may be concepts and relationships that are relevant toall members of a population (e.g., a population of data consumers) or toa specified portion of a population. In some embodiments, universalconcepts and relationships may be concepts and relationships that arerelevant to universal knowledge or domain-specific knowledge (e.g.,concepts and relationships that are derived from reference corpora), incontrast to user-specific knowledge. In some embodiments, universalconcepts and relationships may be any concepts and relationships thatare not user-specific. In some embodiments, universal knowledge may beknowledge that relates to a specified number of users (or knowledgedomains), knowledge that relates to a specified subset of users (orknowledge domains), knowledge that relates to a specified percentage ofusers (or knowledge domains), and/or knowledge that is not specific to auser (or knowledge domain).

In some embodiments, the same kernel may be accessible via multipleuser-specific KRs (e.g., may be used by the KR system to provide thesame general concepts and relationships to multiple users).

In some embodiments, a kernel may contain concepts and/or relationshipsrelevant to domain-specific knowledge, such as domain-specific knowledgethat is relevant to many or all users of a KR system 2000.

In some embodiments, a customized module (CM) 3904 may containuser-specific knowledge that is relevant to a specific user or aspecific group of users of a KR system 2000. In some embodiments, a CMmay contain concepts and relationships that are relevant (e.g.,specifically relevant) to the specific user or group of users. In someembodiments, a CM may be used by a KR system to provide user-specificconcepts and relationships to a corresponding user. In some embodiments,a CM may correspond to a particular knowledge domain or group ofknowledge domains, and may contain domain-specific concepts andrelationships. Domain-specific concepts and relationships may berelevant (e.g., specifically relevant) to one or more particularknowledge domain(s). In some embodiments, customized module 3904 may beused by the KR system to provide domain-specific concepts andrelationships.

A concept and/or relationship that is specifically relevant to a usermay be relevant only to that user and not to other users, may have arelevance to the user that exceeds a threshold relevance level, may bemore relevant to the user than to a threshold percentage of users, etc.A concept and/or relationship that is specifically relevant to aknowledge domain may be more relevant to the knowledge domain than toother domains, may be relevant only to the knowledge domain and not toother knowledge domains, may have a relevance to the knowledge domainthat exceeds a threshold relevance level, etc.

For example, in some embodiments, the users of KR system 2000 may bedoctors employed by a hospital. In this example, kernel 3902 may containknowledge that is specific to administration of health care, such asknowledge specific to surgery, oncology, radiology, trauma, or othermedical topics. In this example, a CM 3904 may contain knowledge that isrelevant to a particular doctor, such as knowledge specific toprocedures the doctor has performed, research the doctor has conducted,or patients the doctor has treated. By storing knowledge that isrelevant to many or all users in a shared kernel 3902, and storingknowledge that is relevant to individual users in individual CMs 3904,redundancy of data storage may be advantageously reduced, whileretaining the benefits of user-specific customization of a knowledgerepresentation.

In some embodiments, kernel 3902 may include a general knowledgerepresentation. A general KR may include general concepts andrelationships. General concepts and relationships may be elementalconcepts and relationships that are relevant to general knowledge (e.g.,knowledge contained in general-purpose reference documents, such asencyclopedias, dictionaries, thesauri, and/or almanacs, including butnot limited to Wikipedia and WorldNet). In some embodiments, a generalKR may be constructed by analysis engine 150 through the application ofknowledge processing rules 130 to reference corpora or input KRs 160containing general knowledge.

In some embodiments, kernel 3902 may include a domain-specific knowledgerepresentation. A domain-specific KR may include domain-specificconcepts and relationships. Domain-specific concepts and relationshipsmay be elemental concepts and relationships that are relevant todomain-specific knowledge (e.g., knowledge contained in documentsrelating to scientific disciplines, the arts, occupations, professions,religions, history, sports, etc.). In some embodiments, domain-specificconcepts and relationships may be specifically relevant to one or moreknowledge domains. In some embodiments, a domain-specific KR may beconstructed by applying knowledge processing rules 130 to referencecorpora or input KRs 160 containing domain-specific knowledge.

In some embodiments, elemental data structure 120 includes one or morecustomized modules 3904. A customized module 3904 may include auser-specific knowledge representation. A user-specific KR may includeuser-specific concepts and relationships. User-specific concepts andrelationships may be concepts and relationships that are relevant (e.g.,particularly relevant or specifically relevant) to a user or a specificgroup of users (e.g., data consumer 195). For example, user-specificconcepts and relationships may be concepts and relationships that arerelevant to an interest of a corresponding user. In some embodiments, auser-specific KR for a user may be constructed by applying knowledgeprocessing rules 130 to information or KRs containing user-specificknowledge, such as an interest network corresponding to the user.

In some embodiments, a customized module (CM) 3904 may include concepts.For example, some embodiments of customized module 3904 may includeconcepts that are relevant to a corresponding user, and are notcontained in a kernel 3902 of elemental data structure 120. In someembodiments, a customized module 3904 may include references toconcepts. For example, some embodiments of customized module 3904 mayinclude references to concepts that are relevant to a correspondinguser, and are contained in a kernel 3902 of elemental data structure120. A reference to a concept may be implemented using any suitabletechniques, including but not limited to storing a pointer to theconcept, storing a unique tag associated with the concept, storing anindex associated with the concept, or in any other suitable way. Bystoring a reference to a kernel concept in a CM 3904 corresponding to aparticular user, KR system 2000 may efficiently convey that the kernelconcept is particularly relevant to the user, while avoiding theoverhead (e.g., data storage overhead) associated with storing aduplicate of the concept in the CM 3904.

In some embodiments, a customized module 3904 may include relationships.For example, some embodiments of customized module 3904 may includerelationships that are relevant to a corresponding user, and are notcontained in a kernel 3902 of elemental data structure 120. For example,some embodiments of customized module 3904 may include a relationshipbetween two concepts in the customized module 3904, a relationshipbetween a concept in the customized module 3904 and a concept in akernel 3902, a relationship between a concept in the customized module3904 and a concept in another customized module 3904, and/or arelationship between two concepts in a kernel 3902. For example, ifkernel 3902 includes the concepts “Rio de Janeiro” and “Olympics,” and auser is interested in flying to Rio de Janeiro to attend the SummerOlympic Games in 2016, a CM corresponding to the user may include arelationship between the kernel's concepts “Rio de Janeiro” and“Olympics,” as well as a relationship between the CM's concept “airfare”and the kernel's concept “Rio de Janeiro.”

In some embodiments, CM 3904 may include references to relationships.For example, some embodiments of customized module 3904 may includereferences to relationships that are relevant to a corresponding user,and are contained in a kernel 3902 of elemental data structure 120. Areference to a relationship may be implemented in any suitable manner,including but not limited to storing a pointer to the relationship,storing a unique tag associated with the relationship, storing an indexassociated with the relationship, or in any other suitable way. Bystoring a reference to a kernel relationship in a CM 3904 correspondingto a particular user, KR system 2000 may efficiently convey that thekernel relationship is particularly relevant to the user, while avoiding(he overhead (e.g., data storage overhead) associated with storing aduplicate of the relationship in the CM 3904.

Embodiments of elemental data structure 120 may include two or more CMs3904 that correspond to a same user. In some embodiments, the two ormore CMs may correspond to different interests of the user. Each CMtherefore may contain knowledge that is particularly relevant to thecorresponding interest of the user, and little or no knowledge that isnot relevant to that corresponding interest. For example, one CM maycorrespond to the user's professional interests, and another CM maycorrespond to the user's personal interests. The use of auser-interest-specific CM by synthesis engine 170 may facilitateefficient identification of concepts and/or content items that arehighly relevant to a query (e.g., in cases where the user's queryrelates strongly to the corresponding interest). For example, when a CMcorresponding to a user's professional interests is used to identifyconcepts or content items in response to a query concerning the user'sprofession, the identified concepts or content items may be highlyrelevant to the user's query.

As described above, a customized module may be constructed usingconcepts and relationships obtained by analyzing a user's interestnetwork. In embodiments where elemental data structure 120 includes twoor more CMs for a user, a concept or relationship obtained by analysisof a user's interest network may be added to any number of the user'sCMs or to none of the user's CMs. In some embodiments, the determinationof whether to add a concept or relationship to a particular CM may bebased on proxy indicators associated with the information in the user'sinterest network from which the concept or relationship was derived. Forexample, if the concept or relationship was derived from informationgenerated during specified hours (e.g., 8 AM-6 PM), on specified days ofthe week (e.g., Monday-Friday), or on specified dates (e.g.,non-holidays), the concept or relationship may be added to a first CM(e.g., a CM that corresponds to the user's professional interests). Onthe other hand, if the concept or relationship was derived frominformation generated during other specified hours (e.g., 6 PM-11 PM),on other specified days of the week (e.g., Saturday-Sunday), or on otherspecified dates (e.g., holidays), the concept or relationship may beadded to a second CM (e.g., a CM that corresponds to the user's personalinterests). These examples of proxy indicators are merely illustrative,as any indicators suitable for distinguishing among a user's interestsmay be used, including but not limited to a type of computing deviceused to generate the information, an internet address (e.g., IP addressor MAC address) of a computing device used to generate the information,a geographical location of the user when the information was generated,or other indicators. In some embodiments, a user may manually select theCM that corresponds to the user's activities (e.g., by logging into a KRsystem account associated with the selected CM. or by using a softwareinterface of the KR system to select the desired CM).

When a user-interest-specific CM is used to identify concepts or contentin response to a query that is not strongly related to the correspondinguser interest, the identified concepts or content may be less relevantto the user. Accordingly, in some embodiments, elemental data structure120 may include a CM 3904 that corresponds to all interests, aspects, oractivities of the user. The use of such a user-specific,interest-nonspecific CM may provide better results than auser-interest-specific CM when the user provides a query that relates tomultiple user interests or does not relate strongly to any one userinterest. In some embodiments, a user-specific, interest-nonspecific CMmay be constructed based on analysis of multiple user-interest-specificCMs. In some embodiments, a user-specific, interest-nonspecific CM maybe constructed by adding all user-specific concepts and relationships toa CM, irrespective of any user interests to which the concepts andrelationships may pertain.

FIG. 38 shows a flowchart of a method of operating a KR system,according to some embodiments. At step 4502, the KR system obtainscontext information associated with a user. In some embodiments, thecontext information may include a query. In some embodiments, thecontext information may include information related to the user, such asinformation about an attribute of the user, information about anactivity of the user, information provided by the user, or any otherinformation related to the user.

At step 4504, the KR system identifies, based on a plurality of conceptsin a KR corresponding to the user, a group of one or more conceptsrelevant to the user context information (e.g., relevant to the user'squery). In some embodiments, a KR corresponding to the user (“user KR”)may include concepts and relationships that are relevant to users ingeneral (e.g., general concepts and relationships of a kernel 3902),relevant to a knowledge domain of interest to the user (e.g.,domain-specific knowledge concepts and relationships of a kernel 3902 ora domain-specific customized module 3904), and/or specifically relevantto the user (e.g., user-specific concepts and relationships of auser-specific customized module 3904).

In some embodiments, a user KR may be formed by combining one or morekernels 3902 (or portions thereof), one or more domain-specificcustomized modules 3904, and/or one or more of the user's user-specificcustomized modules 3904. For example, a user KR may be formed bycombining a kernel with a user-specific customized module (e.g., auser-specific customized module that relates to the user, to one or moreother users, to one or more interests of the user, and/or to one or moreinterests of other users). As another example, a user KR may be formedby combining a kernel with a domain-specific customized module (e.g., adomain-specific customized module that relates to a knowledge domain ofinterest to the user).

In some embodiments, two or more modules (e.g., kernel modules,domain-specific customized modules, or user-specific customized modules)may be combined by integrating the modules into a unified module. Forexample, in embodiments where a module is represented by a connectedgraph (e.g., a semantic network), two or more modules may be integratedby connecting the modules' graphs to each other. As another example, inembodiments where a module is represented by an unconnected graph (e.g.,a semantic network), two or more modules may be integrating byconnecting portions of the modules' graphs to each other. In someembodiments, two or more modules may be combined by maintaining themodules as separate modules, by performing independent synthesisoperations on the separate modules, and by aggregating the results(e.g., complex KRs and/or content) of the synthesis operations.

Integration of modules may be carried out in any suitable way. In someembodiments, two or more modules may be integrated by forming a unionbetween the modules' graphs and performing entity resolution,correspondence mapping, and/or conflict resolution. In some embodiments,entity resolution may be performed by identifying two or more conceptswith the same or sufficiently similar meanings, and merging those two ormore concepts into a single concept. The determination as to whether twoor more concepts have the same or sufficiently similar meanings may becarried out using label matching, pattern matching, or any othersuitable technique. In embodiments where label matching is performed,two concepts may be identified as being the same or sufficiently similarif the concepts have identical labels. In embodiments where patternmatching is performed, the sameness or sufficient similarity of twoconcepts may be assessed using Jaccard's index. Dice's co-efficient,etc.

In some embodiments, correspondence matching may be performed inaddition to or as an alternative to entity resolution. In someembodiments, correspondence matching may be performed by identifying (intwo or more modules) concepts that have the same concept identifier, andby merging those concepts into a single concept in the combined module.A concept identifier may be a unique identifier that distinguishes aconcept from all other concepts. For example, a module relating athletesmay include a concept “Usain Bolt” which corresponds to the Jamaicansprinter named Usain Bolt, and that concept may have a unique ID (e.g.,a number of alphanumeric character string that distinguishes the conceptfrom all other concepts). In addition, a module relating to world recordholders in track-and-field events may include the same concept “UsainBolt”, and that concept may have the same unique ID. In someembodiments, correspondence matching may be used to identify the two“Usain Bolt” concepts and merge them into a single “Usain Bolt” concept.Correspondence matching may be advantageously applied to embodiments inwhich modules are represented as graphs, as tables, or as any othersuitable data structure.

In some embodiments, conflict resolution may be performed by identifyingconcepts and/or relationships in the two or more modules that conflict,and selecting one of the conflicting concepts and/or relationships totake precedence over the conflicts and/or relationships with which itconflicts. For example, a conflict between a relationship in acustomized module and a relationship in a kernel may be identified. Insome embodiments (e.g., embodiments wherein user-specific knowledge isprioritized over general knowledge), the combination of the customizedmodule and the kernel may include the customized module's relationshipand omit the kernel's conflict relationship. In some embodiments (e.g.,embodiments where general knowledge is prioritized over user-specificknowledge), the combination of the customized module and the kernel mayinclude the kernel's relationship and omit the customized module'srelationship. In some embodiments, the concept or relationship thattakes precedence in a conflict scenario may be selected based on othercriteria, such as probabilities or confidence scores associated with themodules or with the conflicting concepts and/or relationships.

In some embodiments, a combination of two or more modules may be formedby creating a new (combined) module based on analysis of the two or moremodules. In some embodiments, a combination of two or more modules maybe formed by merely aggregating of the modules into a single module(e.g., by forming an unconnected graph from the graphs that correspondto the modules).

In some embodiments, the group of one or more concepts relevant to theuser context may be identified by performing a single synthesisoperation on the user KR. In some embodiments, a single synthesisoperation may be preferable, for example, in cases where the user KRcombines all of the user-specific CMs that are relevant to the user'squery. In some embodiments, the group of one or more concepts relevantto the user content may be identified by performing two or moresynthesis operations on two or more user KRs. In some embodiments,multiple synthesis operations may be preferable, for example, in caseswhere the user-specific CMs that are relevant to the query are assignedto different user KRs. In some embodiments, performing multiplesynthesis operations (e.g., a first synthesis operation on a first userKR that combines a kernel and a first user-specific CM, and a secondsynthesis operation on a second user KR that combines the kernel and asecond user-specific CM) may result in identification of a first groupof concepts relevant to the user's context information, and performing asingle synthesis operation (e.g., a single synthesis operation on a userKR that combines a kernel, a first user-specific CM, and a seconduser-specific CM) may result in identification of a second group ofconcepts relevant to the user's context information. In someembodiments, the first and second groups of concepts may differ, atleast in part. In some embodiments, a synthesis operation may include atleast step 4504 of the method illustrated in FIG. 38. In someembodiments, the group of one or more concepts relevant to the user'scontext may be organized in a KR and provided to the user, and/or storedin the user's interest network.

At step 4506, the KR system identifies content information correspondingto the identified group of one or more concepts. Content correspondingto identified concepts may be identified in any suitable manner,including but not limited to entering the labels of the identifiedconcepts into a search engine (e.g., individually or in any combinationof two or more concepts). In some embodiments, content information mayinclude any type of digitally-encoded information, including but notlimited to documents, audiovisual information (e.g., videos, music,images, podcasts), tweets, emails, messages posted on a socialnetworking platform, blog entries, etc.

At step 4508, the KR system may provide the identified contentinformation to the user. In some embodiments, the content informationprovided to the user may be ranked. A ranking of an item of contentinformation may be based, for example, on a relevance of the item to theuser's query and/or to the group of concepts identified in step 4504.

At step 4510, the KR system may update the user KR. In some embodiments,the KR system may update the user KR by updating the user-specificcustomized module(s) that are included in the user KR. An update of theuser KR may be initiated at a specified time, periodically, in responseto a trigger event (e.g., creation of a user-specific customized module,modification of a user-specific CM, a number of concepts in auser-specific CM exceeding a threshold number of concepts, a number ofrelationships in a user-specific CM exceeding a threshold number ofrelationships, or a change in the user's interest network), or in anyother suitable manner.

FIG. 39 illustrates a method of updating a KR, according to someembodiments. At step 4602 of the illustrated method, a first concept, asecond concept, and/or a relationship between the first and secondconcepts may be identified. In some embodiments, the first and secondconcepts and the relationship may be identified by using analysis engine150 to analyze an interest network of a user to whom the CM corresponds,or a portion of such an interest network. In some embodiments, theinterest network (or a portion thereof) may be provided to analysisengine 150 of KR system 2000 by feedback engine 2002. For example,feedback engine 2002 may provide interest network (or portions thereof)to analysis engine 150 periodically, at specified times, or in responseto a trigger event or condition (e.g., provision of content informationto the user, provision of an output KR 190 to the user, an amount ofcontent information provided to the user by KR system 2000 (e.g., withina specified time period) exceeding a threshold amount, or a number ofconcepts contained in output KRs 190 provided to the user by KR system2000 (e.g., within a specified time period) exceeding a thresholdnumber).

At step 4604 of the illustrated method, a determination is made as towhether the first concept is included in the user's knowledgerepresentation. A determination as to whether a concept is included inthe user's KR may be made using any suitable technique for searching aKR.

If the first concept is not in the user's KR, the first concept is addedto at least one of the user's customized modules at step 4606. (In caseswhere multiple CMs correspond to the user, techniques described abovemay be used to select the CM(s) to be modified.)

At step 4608 of the illustrated method, a determination is made as towhether the second concept is included in the user's KR. If the secondconcept is not in the user's KR, the second concept is added to at leastone of the user's customized modules at step 4610. (In cases wheremultiple CMs correspond to the user, techniques described above may beused to select the CM(s) to be modified.)

At step 4612 of the illustrated method, a determination is made as towhether the relationship is included in the user's KR. If therelationship is not in the user's KR, the relationship is added to atleast one of the user's customized modules at step 4614. (In cases wheremultiple CMs correspond to the user, techniques described above may beused to select the CM(s) to be modified.)

Embodiments of the method of FIG. 39 may be used to construct auser-specific, interest-nonspecific CM from one or moreuser-interest-specific CMs. As described above, elemental data structure120 may include CMs that are not only specific to a user, but specificto a particular interest of the user. In some embodiments, auser-specific, interest-nonspecific CM may be formed by analyzing theuser-interest-specific CMs to obtain user-specific concepts andrelationships, and by using the user-specific concepts and relationshipsto construct (or update) a user-specific, interest-nonspecific CM.

In some embodiments, a KR of elemental data structure 120 includeselemental concepts and complex concepts. In some embodiments, theelemental concepts included in the KR may be explicitly encoded, e.g.,as nodes in a graph. In some embodiments, the complex concepts may beimplicitly encoded, e.g., as concepts obtainable by applying knowledgeprocessing rules 130 to concepts of the KR.

VIII. Organization of a Kernel

Some kernels 3902 may be well-suited to some applications of a KR system2000 and less well-suited to other applications. For example, incircumstances where the KR system is expected to identify contentrelevant to a broad range of general and domain-specific topics, amonolithic kernel including concepts and relationships obtained fromanalysis of a broad range of general and domain-specific information maybe advantageous. However, the number of concepts and the number ofrelationships in such a kernel may be very large, such that searchingthe kernel may require a large amount of memory and/or a relatively longprocessing time. As another example, in circumstances where the KRsystem is expected to identify content relevant to a small number ofdomain-specific topics, a kernel that includes one or more modulesrelevant to the domain-specific topics may provide excellent resultswhile requiring less memory and less processing time.

FIG. 32B shows a kernel 3902, according to some embodiments. In theembodiment of FIG. 32B, kernel 3902 may include one or more referencemodules 3906. In some embodiments, a reference module 3906 may contain adomain-specific KR. In some embodiments, a domain-specific referencemodule may be constructed by analyzing KRs and other informationrelevant to the corresponding knowledge domain. For example, a referencemodule 3906 relevant to diagnostic medicine may be constructed byanalyzing KRs, journal articles, case studies, and oilier informationrelevant to diagnostic medicine.

Embodiments of the method illustrated in FIG. 38 may be applied to a KRsystem 2000 in which a kernel 3902 includes one or more referencemodules 3906. At step 4502, the KR system may obtain context information(e.g., a query). At step 4504, (he KR system may identify, based on aplurality of concepts in a KR, a group of one or more concepts relevantto the context information (e.g., relevant to the query). In someembodiments, the KR may include a kernel 3902 which includes one or morereference modules. In some embodiments, the KR may include portions of akernel 3902, such as one or more reference modules of the kernel 3902.In some embodiments, the KR may include a combination of one or morereference modules and/or one or more user-specific or domain-specificcustomized modules.

In some embodiments, the KR may be formed in response to the KR systemreceiving a query (e.g., one or more reference modules ordomain-specific customized modules may be selected for inclusion in theKR based on a topic of the query, and one or more user-specificcustomized modules may be selected based on the user who supplied thequery). In some embodiments, the KR may be formed prior to the KR systemreceiving a query (e.g., one or more reference modules may bepre-selected for inclusion in the KR by a developer or provider of theKR system, based on the developer's or provider's understanding of thetypes of queries the KR system is likely to handle).

In some embodiments, the group of one or more concepts relevant to theuser context may be identified by performing a single synthesisoperation on a KR that includes a combination of all reference modulesand customized modules that are likely to be relevant to the query. Insome embodiments, the group of one or more concepts relevant to the usercontext may be identified by performing multiple synthesis operations onmultiple KRs that each includes a subset of the reference modules and/orcustomized modules that are likely to be relevant to the query. In someembodiments, performing multiple synthesis operations (e.g., a firstsynthesis operation on a first KR that includes a first referencemodule, and a second synthesis operation on a second KR that includes asecond reference module) may result in identification of a first groupof concepts relevant to the user's context information, and performing asingle synthesis operation (e.g., a single synthesis operation on a KRthat includes a combination of the first and second reference modules)may result in identification of a second group of concepts relevant tothe user's context information. In some embodiments, the first andsecond groups of concepts may differ, at least in part. In someembodiments, a synthesis operation may include at least step 4504 of themethod illustrated in FIG. 38. In some embodiments, the group of one ormore concepts relevant to the user's context may be organized in a KRand provided to the user, and/or stored in the user's interest network.

At step 4506, the KR system identifies content information correspondingto the identified group of one or more concepts. Content correspondingto identified concepts may be identified using any suitable techniquesfor identifying content, including but not limited to entering thelabels of the identified concepts into a search engine (e.g.,individually or in any combination of two or more concepts). In someembodiments, content information may include any type ofdigitally-encoded information, including but not limited to documents,audiovisual information (e.g., videos, music, images, podcasts), tweets,emails, messages posted on a social networking platform, blog entries,etc.

At step 4508, the KR system may provide the identified contentinformation to the user. In some embodiments, the content informationprovided to the user may be ranked. A ranking of an item of contentinformation may be based, for example, on an indication of the item'srelevance to the user's query and/or to the group of concepts identifiedin step 4504.

Al step 4510, the KR system may update the user KR. In some embodiments,the KR system may update the KR by updating user-specific customizedmodule(s) that are included in the user KR, by updating domain-specificmodules(s) that are included in the KR. by updating a kernel that isincluded in the KR. by adding a user-specific module to the KR. byremoving a user-specific module from the KR. by adding a domain-specificmodule to the KR. by removing a domain-specific module from the KR. byadding a kernel to the KR, by removing a kernel from the KR, or in anyother suitable way.

In some embodiments, two or more modules (e.g., user-specific customizedmodules, domain-specific customized modules, kernels, or referencemodules) of an elemental data structure 120 may include one or morecommon concepts and/or relationships. In some embodiments, two modulesare different if the set of concepts and relationships included in thefirst module differs, at least in part, from the set of concepts andrelationships included in the second module.

References are made herein to embodiments of KRs that “include” one ormore modules (e.g., domain-specific modules or customized modules).References to such inclusion are intended to encompass embodiments inwhich the module is included through combination with one or more othermodules.

IX. Exemplary Systems

FIGS. 22 and 23 illustrate exemplary systems 2200 and 2300,respectively, that may be employed in some embodiments for implementingan atomic knowledge representation model (AKRM) involved in analysis andsynthesis of complex knowledge representations (KRs), in accordance withsome embodiments of the present invention. Exemplary system 2200comprises inference engine 2102, statistical engine 1902, feedbackengine 2002, and preference engine 3802.

Various engines illustrated in FIG. 15 may operate together to performanalysis and/or synthesis of complex KRs. For example, documents such asweb pages or other digital content viewed or used by a data consumer 195may be included in data consumer model 2004. Feedback engine 2002 mayadd such documents or other digital content to reference data 1904.Inference engine 2102 may detect subsumption relationships amongconcepts in such documents. Statistical engine 1902 may use suchdocuments to estimate a relevance of one concept to another. As anotherexample, inference engine 2102 may infer that a relationship existsbetween two concepts in elemental data structure 120. Statistical engine1902 may estimate a relevance associated with the relationship.Additionally or alternatively, inference engine 2102 may apply elementalinference rules to a statistical graphical model produced by statisticalengine 2102. Additional cooperative or complementary functions of thevarious inventive engines disclosed herein will be apparent to one ofskill in the art, and are within the scope of this disclosure.

Exemplary system 2300 of FIG. 16 further illustrates that inferenceengine 2102 and/or statistical engine 1902 may participate in analysisand/or synthesis operations.

As illustrated in FIGS. 22 and 23, reference data 1904 may be used toestimate relevance values associated with components of elemental datastructure 120 and/or to detect concepts and relationships not detectedby analysis engine 150. For example, application of knowledge processingrules 130 to input KRs 160 by analysis engine 150 may suggest that thereis no relationship between two concepts or that the relevance of thefirst concept to the second concept is low. However, application ofstatistical inference methods and inferential analysis rules toreference data 1904 may suggest that there is a relationship between thetwo concepts or that the relevance of the first concept to the secondconcept is high. Results obtained from inference engine 2102 and/orstatistical engine 1902 may complement results obtained from analysisengine 150, in the sense that analysis of multiple sources of data maylead to more accurate detection of relationships and concepts, and moreaccurate calculate of relevance values associated with thoserelationships and concepts. In some embodiments, an exemplary system mayevaluate a portion of reference data 1904 (or an input KR 160) todetermine whether analysis of the data (or KR) is likely to enhance aquality of elemental data structure 120.

X. Additional Remarks

Various inventive aspects described herein may be used with any of oneor more computers and/or devices each having one or more processors thatmay be programmed to take any of the actions described above for usingan atomic knowledge representation model in analysis and synthesis ofcomplex knowledge representations. For example, both server and clientcomputing systems may be implemented as one or more computers, asdescribed above. FIG. 8 shows, schematically, an illustrative computer1100 on which various inventive aspects of the present disclosure may beimplemented. The computer 1100 includes a processor or processing unit1101 and a memory 1102 that may include volatile and/or non-volatilememory. The computer 1100 may also include storage 1105 (e.g., one ormore disk drives) in addition to the system memory 1102.

The memory 1102 and/or storage 1105 may store one or morecomputer-executable instructions to program the processing unit 1101 toperform any of the functions described herein. The storage 1105 mayoptionally also store one or more data sets as needed. For example, acomputer used to implement server system 100 may in some embodimentsstore AKRM data set 110 in storage 1105. Alternatively, such data setsmay be implemented separately from a computer used to implement serversystem 100.

References herein to a computer can include any device having aprogrammed processor, including a rack-mounted computer, a desktopcomputer, a laptop computer, a tablet computer or any of numerousdevices that may not generally be regarded as a computer, which includea programmed processor (e.g., a PDA, an MP3 Player, a mobile telephone,wireless headphones, etc.).

The exemplary computer 1100 may have one or more input devices and/oroutput devices, such as devices 1106 and 1107 illustrated in FIG. 8.These devices may be used, among other things, to present a userinterface. Examples of output devices that can be used to provide a userinterface include printers or display screens for visual presentation ofoutput and speakers or other sound generating devices for audiblepresentation of output. Examples of input devices that can be used for auser interface include keyboards, and pointing devices, such as mice,touch pads, and digitizing tablets. As another example, a computer mayreceive input information through speech recognition or in other audibleformat.

As shown in FIG. 8, the computer 1100 may also comprise one or morenetwork interfaces (e.g., the network interlace 1110) to enablecommunication via various networks (e.g., the network 1120). Examples ofnetworks include a local area network or a wide area network, such as anenterprise network or the Internet. Such networks may be based on anysuitable technology and may operate according to any suitable protocoland may include wireless networks, wired networks or fiber opticnetworks.

Having thus described several aspects of at least one embodiment of thisinvention, it is to be appreciated that various alterations,modifications, and improvements will readily occur to those skilled inthe art. Such alterations, modifications, and improvements are intendedto be part of this disclosure, and are intended to be within the spiritand scope of the invention. Accordingly, the foregoing description anddrawings are by way of example only.

The above-described embodiments of the present invention can beimplemented in any of numerous ways. For example, the embodiments may beimplemented using hardware, software or a combination thereof. Whenimplemented in software, the software code can be executed on anysuitable processor or collection of processors, whether provided in asingle computer or distributed among multiple computers. Such processorsmay be implemented as integrated circuits, with one or more processorsin an integrated circuit component. Though, a processor may beimplemented using circuitry in any suitable format.

Further, it should be appreciated that a computer may be embodied in anyof a number of forms, such as a rack-mounted computer, a desktopcomputer, a laptop computer, or a tablet computer. Additionally, acomputer may be embedded in a device not generally regarded as acomputer but with suitable processing capabilities, including a PersonalDigital Assistant (PDA), a smart phone or any other suitable portable orfixed electronic device.

Also, a computer may have one or more input and output devices. Thesedevices can be used, among other things, to present a user interface.Examples of output devices that can be used to provide a user interfaceinclude printers or display screens for visual presentation of outputand speakers or other sound generating devices for audible presentationof output. Examples of input devices that can be used for a userinterface include keyboards, and pointing devices, such as mice, touchpads, and digitizing tablets. As another example, a computer may receiveinput information through speech recognition or in other audible format.

Such computers may be interconnected by one or more networks in anysuitable form, including as a local area network or a wide area network,such as an enterprise network or the Internet. Such networks may bebased on any suitable technology and may operate according to anysuitable protocol and may include wireless networks, wired networks orfiber optic networks.

Also, the various methods or processes outlined herein may be coded assoftware that is executable on one or more processors that employ anyone of a variety of operating systems or platforms. Additionally, suchsoftware may be written using any of a number of suitable programminglanguages and/or programming or scripting tools, and also may becompiled as executable machine language code or intermediate code thatis executed on a framework or virtual machine.

In this respect, the invention may be embodied as a tangible,non-transitory computer readable storage medium (or multiple computerreadable storage media) (e.g., a computer memory, one or more floppydiscs, compact discs (CD), optical discs, digital video disks (DVD),magnetic tapes, flash memories, circuit configurations in FieldProgrammable Gate Arrays or other semiconductor devices, or othernon-transitory, tangible computer-readable storage media) encoded withone or more programs that, when executed on one or more computers orother processors, perform methods that implement the various embodimentsof the invention discussed above. The computer readable medium or mediacan be transportable, such that the program or programs stored thereoncan be loaded onto one or more different computers or other processorsto implement various aspects of the present invention as discussedabove. As used herein, the term “non-transitory computer-readablestorage medium” encompasses only a computer-readable medium that can beconsidered to be a manufacture (i.e., article of manufacture) or amachine.

The terms “program” or “software” are used herein in a generic sense torefer to any type of computer code or set of computer-executableinstructions that can be employed to program a computer or otherprocessor to implement various aspects of the present invention asdiscussed above. Additionally, it should be appreciated that accordingto one aspect of this embodiment, one or more computer programs thatwhen executed perform methods of the present invention need not resideon a single computer or processor, but may be distributed in a modularfashion amongst a number of different computers or processors toimplement various aspects of the present invention.

Computer-executable instructions may be in many forms, such as programmodules, executed by one or more computers or other devices. Generally,program modules include routines, programs, objects, components, datastructures, etc. that perform particular tasks or implement particularabstract data types. Typically the functionality of the program modulesmay be combined or distributed as desired in various embodiments.

Also, data structures may be stored in computer-readable media in anysuitable form. For simplicity of illustration, data structures may beshown to have fields that are related through location in the datastructure. Such relationships may likewise be achieved by assigningstorage for the fields with locations in a computer-readable medium thatconveys relationship between the fields. However, any suitable mechanismmay be used to establish a relationship between information in fields ofa data structure, including through the use of pointers, tags or othermechanisms that establish relationship between data elements.

Various aspects of the present invention may be used alone, incombination, or in a variety of arrangements not specifically discussedin the embodiments described in the foregoing and is therefore notlimited in its application to the details and arrangement of componentsset forth in the foregoing description or illustrated in the drawings.For example, aspects described in one embodiment may be combined in anymanner with aspects described in other embodiments.

Also, the invention may be embodied as a method, of which an example hasbeen provided. The acts performed as part of the method may be orderedin any suitable way. Accordingly, embodiments may be constructed inwhich acts are performed in an order different than illustrated, whichmay include performing some acts simultaneously, even though shown assequential acts in illustrative embodiments.

As used herein, the word “user” is generally intended to be interpretedin the same manner as the phrase “data consumer” (e.g., one or morehuman users of a KR system and/or one or more machine-implementeddevices or software applications interacting with a KR system.

Use of ordinal terms such as “first,” “second,” “third,” etc., in theclaims to modify a claim element does not by itself connote anypriority, precedence, or order of one claim element over another or thetemporal order in which acts of a method are performed, but are usedmerely as labels to distinguish one claim element having a certain namefrom another element having a same name (but for use of the ordinalterm) to distinguish the claim elements.

All definitions, as defined and used herein, should be understood tocontrol over dictionary definitions, definitions in documentsincorporated by reference, and/or ordinary meanings of the definedterms.

The indefinite articles “a” and “an.” as used herein, unless clearlyindicated to the contrary, should be understood to mean “at least one.”

As used herein, the phrase “at least one.” in reference to a list of oneor more elements, should be understood to mean at least one elementselected from any one or more of the elements in the list of elements,but not necessarily including at least one of each and every elementspecifically listed within the list of elements, and not excluding anycombinations of elements in the list of elements. This definition alsoallows that elements may optionally be present other than the elementsspecifically identified within the list of elements to which the phrase“at least one” refers, whether related or unrelated to those elementsspecifically identified. Thus, as a non-limiting example, “at least oneof A and B” (or, equivalently, “at least one of A or B” or,equivalently. “at least one of A and/or B”) can refer, in oneembodiment, to at least one, optionally including more than one. A, withno B present (and optionally including elements other than B); inanother embodiment, to at least one, optionally including more than one,B, with no A present (and optionally including elements other than A);in yet another embodiment, to at least one, optionally including morethan one. A, and at least one, optionally including more than one, B(and optionally including other elements); etc.

The phrase “and/or,” as used herein, should be understood to mean“either or both” of the elements so conjoined, i.e., elements that areconjunctively present in some cases and disjunctively present in othercases. Multiple elements listed with “and/or” should be construed in thesame fashion, i.e., as “one or more” of the elements so conjoined. Otherelements may optionally be present other than the elements specificallyidentified by the “and/or” clause, whether related or unrelated to thoseelements specifically identified. Thus, as a non-limiting example, areference to “A and/or B”, when used in conjunction with open-endedlanguage such as “comprising” can refer, in one embodiment, to A only(optionally including elements other than B); in another embodiment, toB only (optionally including elements other than A); in yet anotherembodiment, to both A and B (optionally including other elements); etc.

As used herein, “or” should be understood to have the same meaning as“and/or” as defined above. For example, when separating items in a list,“or” or “and/or” shall be interpreted as being inclusive, i.e., theinclusion of at least one, but also including more than one, of a numberor list of elements, and, optionally, additional unlisted items.

Also, the phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including,” “comprising,” or “having,” “containing,” “involving,” andvariations thereof herein, is meant to encompass the items listedthereafter and equivalents thereof as well as additional items.

Having described several embodiments of the invention in detail, variousmodifications and improvements will readily occur to those skilled inthe art. Such modifications and improvements are intended to be withinthe spirit and scope of the invention. Accordingly, the foregoingdescription is by way of example only, and is not intended as limiting.

1-32. (canceled)
 33. A method of outputting a complex knowledgerepresentation, the method comprising, with at least one processorexecuting stored program instructions: receiving input from a dataconsumer indicating a requested context; applying one or more rules toan elemental computer data structure, wherein the elemental computerdata structure includes a universal kernel and a plurality of customizedmodules, and wherein applying the one or more rules to the elementaldata structure comprises applying a first of the one or more rules tothe universal kernel and a first of the plurality of customized modules;based on the application of the one or more rules, synthesizing, inaccordance with the requested context, a concept and/or a relationshipbetween concepts; and using the concept and/or the relationship,outputting a complex knowledge representation in accordance with therequested context, the complex knowledge representation being customizedto the data consumer based on the first customized module.
 34. Themethod of claim 33, further comprising: receiving input from a seconddata consumer indicating the requested context; applying the one or morerules to the elemental computer data structure a second time, whereinapplying the one or more rules to the elemental data structure thesecond time comprises applying the first rule or another of the one ormore rules to the universal kernel and a second of the plurality ofcustomized modules; based on the application of the one or more rules,synthesizing, in accordance with the requested context, a second conceptand/or a second relationship between concepts; and using the secondconcept and/or the second relationship, outputting a complex knowledgerepresentation in accordance with the requested context, the complexknowledge representation being customized to the second data consumerbased on the second customized module.
 35. The method of claim 34,wherein the second concept differs from the first concept, and/or thesecond relationship differs from the first relationship.
 36. The methodof claim 33, wherein the first data consumer comprises one or morepeople, one or more software modules, and/or one or more computingdevices.
 37. The method of claim 33, wherein: the elemental computerdata structure further includes a second plurality of customizedmodules; the second plurality of customized modules correspond to arespective plurality of information domains; one or more of theplurality of customized modules is associated with a domain-specificmodule of the second plurality of customized modules; and applying theone or more rules to the elemental data structure further comprisesapplying a rule to the domain-specific module.
 38. An apparatus foroutputting a complex knowledge representation, the apparatus comprising:one or more non-transitory computer-readable media capable of storing anelemental computer data structure; and a synthesis engine configured to:receive input from a data consumer indicating a requested context; applyone or more rules to an elemental computer data structure, wherein theelemental computer data structure includes a universal kernel and aplurality of customized modules, and wherein applying the one or morerules to the elemental data structure comprises applying a first of theone or more rules to the universal kernel and a first of the pluralityof customized modules; based on the application of the one or morerules, synthesize, in accordance with the requested context, a conceptand/or a relationship between concepts; and using the concept and/or therelationship, output a complex knowledge representation in accordancewith the requested context, the complex knowledge representation beingcustomized to the first data consumer based on the first customizedmodule.
 39. A non-transitory computer-readable medium storinginstructions which, when executed by a processor, cause the processor toperform a method of outputting a complex knowledge representation, themethod comprising: receiving input from a data consumer indicating arequested context; applying one or more rules to an elemental computerdata structure, wherein the elemental computer data structure includes auniversal kernel and a plurality of customized modules, and whereinapplying the one or more rules to the elemental data structure comprisesapplying a first of the one or more rules to the universal kernel and afirst of the plurality of customized modules; based on the applicationof the one or more rules, synthesizing, in accordance with the requestedcontext, a concept and/or a relationship between concepts; and using theconcept and/or the relationship, outputting a complex knowledgerepresentation in accordance with the requested context, the complexknowledge representation being customized to the first data consumerbased on the first customized module.
 40. The apparatus of claim 38, thesynthesis engine is further configured to: receive input from a seconddata consumer indicating the requested context; apply the one or morerules to the elemental computer data structure a second time, whereinapplying the one or more rules to the elemental data structure thesecond time comprises applying the first rule or another of the one ormore rules to the universal kernel and a second of the plurality ofcustomized modules; based on the application of the one or more rules,synthesizing, in accordance with the requested context, a second conceptand/or a second relationship between concepts; and using the secondconcept and/or the second relationship, output a complex knowledgerepresentation in accordance with the requested context, the complexknowledge representation being customized to the second data consumerbased on the second customized module.
 41. The apparatus of claim 40,wherein the second concept differs from the first concept, and/or thesecond relationship differs from the first relationship.
 42. Theapparatus of claim 38, wherein the first data consumer comprises one ormore people, one or more software modules, and/or one or more computingdevices.
 43. The apparatus of claim 38, wherein: the elemental computerdata structure further includes a second plurality of customizedmodules; the second plurality of customized modules correspond to arespective plurality of information domains; one or more of theplurality of customized modules is associated with a domain-specificmodule of the second plurality of customized modules; and the synthesisengine being configured to apply the one or more rules to the elementaldata structure comprises the synthesis engine being configured to applya rule to the domain-specific module.
 44. The non-transitory computerreadable medium of claim 39, further comprising: receiving input from asecond data consumer indicating the requested context; applying the oneor more rules to the elemental computer data structure a second time,wherein applying the one or more rules to the elemental data structurethe second time comprises applying the first rule or another of the oneor more rules to the universal kernel and a second of the plurality ofcustomized modules; based on the application of the one or more rules,synthesizing, in accordance with the requested context, a second conceptand/or a second relationship between concepts; and using the secondconcept and/or the second relationship, outputting a complex knowledgerepresentation in accordance with the requested context, the complexknowledge representation being customized to the second data consumerbased on the second customized module.
 45. The non-transitory computerreadable medium of claim 44, wherein the second concept differs from thefirst concept, and/or the second relationship differs from the firstrelationship.
 46. The non-transitory computer readable medium of claim39, wherein the first data consumer comprises one or more people, one ormore software modules, and/or one or more computing devices.
 47. Thenon-transitory computer readable medium of claim 39, wherein: theelemental computer data structure further includes a second plurality ofcustomized modules; the second plurality of customized modulescorrespond to a respective plurality of information domains; one or moreof the plurality of customized modules is associated with adomain-specific module of the second plurality of customized modules;and applying the one or more rules to the elemental data structurefurther comprises applying a rule to the domain-specific module.